【问题标题】:How to extract semantic relatedness from a text corpus如何从文本语料库中提取语义相关性
【发布时间】:2011-09-01 16:26:00
【问题描述】:
目标是评估大型文本语料库中术语之间的语义相关性,例如'police' 和 'crime' 应该比 'police' 和 'mountain' 具有更强的语义相关性,因为它们往往在相同的上下文中同时出现。
我读过的最简单的方法是从语料库中提取IF-IDF 信息。
很多人使用潜在语义分析来寻找语义相关性。
我遇到了 Lucene 搜索引擎:http://lucene.apache.org/
你认为提取IF-IDF合适吗?
在技术和软件工具方面(偏爱 Java),您会建议我做什么?
提前致谢!
穆龙
【问题讨论】:
标签:
lucene
term
semantic-analysis
tf-idf
latent-semantic-indexing
【解决方案1】:
是的,Lucene 获取 TF-IDF 数据。 Carrot^2 算法是基于 Lucene 构建的语义提取程序的示例。我提到它是因为作为第一步,他们创建了一个相关矩阵。当然,您可能可以轻松地自己构建这个矩阵。
如果您处理大量数据,您可能希望将 Mahout 用于更难的线性代数部分。
【解决方案2】:
如果你有 lucene 索引就很容易了。例如,要获得相关性,您可以使用简单的公式 count(term1 and term2)/count(term1)* count(term2)。其中 count 是您搜索结果的点击次数。此外,您可以轻松计算其他语义指标,例如 chi^2、信息增益。您只需要获取公式并将其从Query 转换为count 的术语