是否有任何已知的方法(超出统计分析,但不一定将其排除为解决方案的一部分),使用自然语言处理将句子或概念相互关联。到目前为止,我只使用NLTK和Stanford-NLP来帮助我的项目,但我对其他开源解决方案持开放态度。
作为一个例子,请参阅以下乔治奥威尔的文章(http://orwell.ru/library/essays/wiw/english/e_wiw)。假设我给了申请一个句子
"What are George Orwell's opinions on writers."
或者
"George Orwell believes writers enjoy writing to express their creativity, to make a point and for their egos."
可能会从文章中产生线条,如
"The aesthetic motive is very feeble in a lot of writers, but even a pamphleteer or writer of textbooks will have pet words and phrases which appeal to him for non-utilitarian reasons; or he may feel strongly about typography, width of margins, etc."
或
"Serious writers, I should say, are on the whole more vain and self-centered than journalists, though less interested in money."
我明白这并不容易,我可能没有达到很高的准确度,但我希望有关于已经存在的内容和我可以尝试开始的内容的想法,或者至少可以根据已有的内容获得最佳结果知道并在那里。
答案 0 :(得分:1)
这样做的最简单方法可能是在查询语句和句子池之间使用一些距离函数(例如余弦相似度)。它很容易实现。从文本集合创建词汇表,每个句子表示为向量。您可以使用TF-IDF表示向量中的值,并计算句子之间的余弦相似度,并获得与查询句子相关的最高得分句子。
或者您可以从语料库中构建索引并使用例如Lucene并让它为您完成工作。
您也可以考虑使用LSA(潜在语义分析)来获取句子之间的相似性。
答案 1 :(得分:0)
根据我对你的问题(以及你的评论)的理解,你更感兴趣的是理解单个句子的含义,然后相互接近等同。在我看来,统计方法更多的是“感受”句子而不是理解它。在我看来,我会建议深度解析方法。
深入解析句子,理解单词在句子中扮演的角色,理解主语 - 动词 - 对象模型(从左到右解析和此类技巧),然后有一个词汇表,帮助您对名词和动词进行分类。
e.g。
"Serious writers, I should say, are on the whole more vain and self-centered than journalists, though less interested in money."
解析这句话,让你理解句子的主语是“严肃的作家”(严重的是形容词,作家基本上)。在动词形式中,它表示“是”(当前状态)和“感兴趣”。每个动词然后指向一些更多的词汇,包括形容词。如果你以正确的方式安排这个词汇(并继续建立它),我认为你应该找到你的问题。