Set*_*eth 11 c# algorithm search nlp text-mining
我想在消息论坛中为每条消息构建一个约6个关键字(甚至更好:几个单词关键短语)的列表.
有谁知道一个很好的C#库来完成这个?也许有办法让Lucene.NET提供这种信息?
或者,如果不这样做,任何人都可以建议一个算法(或一组算法)来阅读?如果我正在实施自己,我需要的东西不是非常复杂,我只能解决这个问题,如果它在大约一个星期内易于处理.现在,我发现最简单但有效的是TF-IDF.
更新:我上传了使用TF-IDF从真实数据集中选择前5个关键字的结果:http://jsbin.com/oxanoc/2/edit#preview
结果是平庸的,但并非完全无用......也许通过添加检测多词短语,这将是足够好的.
几周前,我用 Java 为大学实现了一个关键字提取算法。项目,并使用了tf-idf模型。
算法:
首先,我们查找段落中的所有二元组,并提取有意义的二元组。(*)
接下来,我们采用一元语法和二元语法的集合,并使用各自的 tf-idf 分数来评估每个语法。每个术语的 idf 分数是Bing API检索到的“文档数” 。
(*)决定哪个二元语法是有意义的:
我们使用了各种启发式方法来查找哪个二元语法可以被认为是有意义的。最后,通过“询问”维基百科获得了最好的结果:我们搜索了二元语法。如果有一篇文章包含这个二元组,我们就认为它有意义。
评估:
我们对随机文章中的 50 篇摘要进行了评估,并提取了这些算法的精确度和召回率。
结果是约 40% 的召回率和约 35% 的准确率,这还不错。