第6章 从文本数据提取信息

本章涵盖如下内容:

  • 使用Java检测标记(单词);
  • 使用Java检测句子;
  • 使用OpenNLP检测标记(单词)与句子;
  • 使用Stanford CoreNLP从标记中提取词根与词性,以及识别命名实体;
  • 使用Java 8借助余弦相似性测度(Cosine Similarity measure)测量文本相似度;
  • 使用Mallet从文本文档提取主题;
  • 使用Mallet对文本文档分类;
  • 使用Weka对文本文档分类。

随着互联网的发展,积累了大量Web数据,并且这些数据大部分都是文本格式的,这使得数据科学家处理的大部分数据类型是文本。文本数据来源非常多样,你可以从文档、文章、博客、社交媒体更新、新闻专线等多方面获取。

有许多基于Java的工具可供数据科学家用来从文本数据提取信息。此外,还有许多工具可以帮助我们做各种数据科学任务。本章,我们把讨论的范围限定在几个数据科学任务上,比如提取细小的文本特征(句子、单词)、使用机器学习进行文档分类、主题提取与建模、从文档中提取关键字以及命名实体识别。

对数据科学家来说,一项最常见的任务是从文本数据中检测标记。这项任务叫作标记化(tokenization)。尽管“标记”可以是单词、符号、短语或其他有意义的文本单元(text unit),但在本章中,我们会把单词视作标记,因为单词本身就是可供处理的文本单元。然而,不同人对单词标记的理解不同,有些人只需要单词,有些人在检测时倾向于把符号忽略,而有些人想保留单词中的标点符号以便获取更多上下文。基于多样化的需求,本部分我们将对相同字符串应用3种不同的技术来产生3种不同的结果。这些技术包括字符串分隔、分词(BreakIterator)、正则表达式。至于选用哪种技术,需要你自己做决定。 ...

Get Java数据科学指南 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.