问题描述
|
目的是评估大型文本语料库中各个词之间的语义相关性。 \'police \'和\'crime \'应该比\'police \'和\'mountain \'具有更强的语义相关性,因为它们倾向于同时出现在同一上下文中。
我读过的最简单的方法包括从语料库中提取IF-IDF信息。
许多人使用潜在语义分析来查找语义相关性。
我遇到过Lucene搜索引擎:http://lucene.apache.org/
您认为提取IF-IDF是否合适?
在技术和软件工具(偏爱Java)方面,您会建议做什么?
提前致谢!
慕罗尼
解决方法
是的,Lucene获取TF-IDF数据。 Carrot ^ 2算法是基于Lucene构建的语义提取程序的示例。我提到它是因为,第一步,他们创建了一个相关矩阵。当然,您可能可以自己轻松地构建此矩阵。
如果要处理大量数据,则可能需要将Mahout用于较硬的线性代数部分。
,如果您有lucene索引,这非常容易。例如,要获得相关性,可以使用简单的公式count(term1和term2)/ count(term1)* count(term2)。搜索结果中点击数的位置。此外,您可以轻松地计算其他semntica指标,例如chi ^ 2,信息增益。您只需要获取公式并将其从
Query
转换为count