用于文本分析的算法或库,特别是:惯用词,跨文本的短语和文本集合
nlp
6
0

我正在做一个项目,在该项目中需要分析文本页面和文本页面集合以确定主词。我想知道是否有一个库(首选c#或java)可以为我处理繁重的工作。如果没有,下面是否有一种算法或多种算法可以实现我的目标。

除了不需要可视化之外,我想做的事情类似于从您在网上找到的url或rss feed构建的词云。他们一直被用于分析总统候选人的演讲,以了解主题或最常用的词是什么。

复杂的是,我需要对成千上万个简短文档进行处理,然后对这些文档的集合或类别进行处理。

我最初的计划是解析文档,然后过滤常见的单词-of,the,he,she等。然后计算剩余单词在文本中出现的次数(以及整个集合/类别)。

问题是,将来我想处理词干,复数形式等。我也想看看是否有一种方法可以识别重要的短语。 (而不是一个单词的数量,一个短语的数量总共是2-3个单词)

任何对策略,库或算法有帮助的指导都将受到赞赏。

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

您正在执行的操作的一个选项是术语频率到反文档频率,即tf-idf。在此计算下,最强的项将具有最高的权重。在此处检查是否: http : //en.wikipedia.org/wiki/Tf-idf

另一种选择是使用像词这样的朴素贝叶斯分类器之类的东西作为特征,并找出文本中最强的特征以确定文档的类别。对于最大熵分类器,这将类似地工作。

至于执行此操作的工具,最好的最佳工具是NLTK,这是一个包含大量文档和教程的Python库: http : //nltk.sourceforge.net/

对于Java,请尝试使用OpenNLP: http ://opennlp.sourceforge.net/

对于短语,请考虑我提供的第二个选项,即使用双字母组和三字母组作为功能,甚至使用tf-idf中的术语。

祝好运!

收藏
评论

要添加罗伯特·埃尔韦尔的答案:

  • 词干和折叠形式。英语中的一种简单方法是在小写单词形式上使用Porter Stemming
  • “常用词”的术语是“停用词”或“停用列表”
  • 按照建议阅读NLTK书将很好地解释许多这些入门问题。
  • 您必须解决的一些问题是解析句子(以便您的双字母组和n-gram短语不跨越句子边界),将句子拆分为记号,以及例如决定如何处理所有格形式。

这些东西都不是明确的,也没有“正确答案”。另请参见“ nlp”和“自然语言” SO标签。

祝好运!这是一个不平凡的项目。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号