按照以下内容,您将不需要一个,但是需要几个不错的算法。
- 忽略代词是通过非连续列表完成的。
- 保留专有名词?您是说要检测诸如胡佛 水坝之类的命名实体并说“这是一个单词”或诸如编程 语言之类的复合名词?我会给你一个提示:这很困难,但是两者都有库。寻找NER(命名实体识别)和词汇分块。 OpenNLP是同时执行这两种操作的Java工具包。
- 忽略连字符?你的意思是,就像在换行符吗?使用正则表达式,并通过字典查找来验证生成的单词。
- 处理复数/词干:您可以查看Snowball提取器。它的技巧很好。
- 形容词和名词的“组合”通常是浅层解析的任务。但是,如果您正在寻找定性形容词(好的,坏的,卑鄙的,令人惊讶的...),您可能会对情感分析感兴趣。 LingPipe可以做到这一点,还有更多。
对不起,我知道您说过要KISS,但不幸的是,您的要求很难满足。但是,存在用于所有这些功能的工具,如果您不想这样做,则应该能够将它们捆绑在一起,而不必自己执行任何任务。如果您想自己执行任务,建议您研究一下词干,这是最简单的方法。
如果您使用Java,请将Lucene与OpenNLP工具箱结合使用。由于Lucene已经内置了词干提取器和大量教程,因此您将获得非常好的结果。另一方面,OpenNLP工具包的文档很少,但是您不需要太多。您可能也对用Python编写的NLTK感兴趣。
我会说您放弃了最后一个要求,因为它涉及浅层解析,并且绝对不会改善您的结果。
啊,顺便说一句。您要查找的文档术语频率内容的确切术语称为tf-idf 。这几乎是寻找术语频率的最佳方法。为了正确地做到这一点,您将无法使用多维矢量矩阵。
... 是的我知道。在参加IR研讨会之后,我对Google的敬意更高。不过,在IR中做了一些事情之后,我对它们的敬意就下降了。
0
在没有获得信息检索学位的情况下,我想知道是否存在用于计算单词在给定文本正文中出现频率的算法。目的是让人们对一组文本评论所说的内容具有“一般感觉”。沿着Wordle的路线 。
我想要的是:
伸手摘星,这些将是桃红色的:
我已经尝试使用Wordnet进行一些基本的操作,但是我只是盲目地进行调整,并希望它适用于我的特定数据。更通用的东西会很棒。