想要建立一个可以扫描文本句子(用英语编写)并根据文本中出现的大多数单词或短语构建关键词排名的工具。
这与Twitter发现的Twitter趋势非常类似,并且会在推文中报告前10个单词。
我已经确定了算法中的高级步骤,如下所示
第2步和第3步很简单,但我不知道在步骤1中如何检测文本中的重要单词并将它们与常用单词(介词,连词等)隔离开来
另外,如果我想跟踪短语可能是什么方法? 例如,如果我有一个文字说“这种蜂蜜非常好” 我可能想跟踪“蜂蜜”和“好”,但我可能还想跟踪“非常好”或“蜂蜜非常好”的短语
任何建议都将不胜感激。
提前致谢
答案 0 :(得分:2)
为了检测短语,我建议使用chunker。您可以使用NLP工具提供的工具,例如OpenNLP或Stanford CoreNLP。
答案 1 :(得分:1)
实际上,您的步骤1与步骤3非常相似,因为您可能想要首先构成英语中最常见词汇的绝对数据库。这样的列表可以在互联网上轻松获得(维基百科甚至有一篇引用100 most common words in the English language的文章。)您可以将这些单词存储在散列图中,并且在扫描文本内容时只需忽略常用标记。
如果您不相信维基百科和已有的常用词汇列表,您可以构建自己的数据库。为此,只需扫描数以千计的推文(越多越好)并制作自己的频率表。
你正面临一个类似n-gram的问题。
不要重新发明轮子。您似乎想要做的事情已经完成了数千次,只需使用现有的库或代码片段(查看n-gram维基百科页面的外部链接部分。)
答案 2 :(得分:0)