0

是否有任何已知的方法(除了统计分析,但不一定将其排除为解决方案的一部分)使用自然语言处理将句子或概念相互关联。到目前为止,我只与 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."

我知道这并不容易,我可能无法达到很高的准确性,但我希望对已经存在的内容以及我可以尝试开始的内容提出一些想法,或者至少根据已知和已发布的内容获得可能的最佳结果那里。

4

2 回答 2

1

最简单的方法可能是在查询句子和句子池之间使用一些距离函数(例如余弦相似度)。这很容易实现。从文本集合中创建一个词汇表,每个句子都表示为一个向量。您可以使用 TF-IDF 来表示向量中的值,并计算句子之间的余弦相似度,并获得相对于您的查询句子得分最高的句子。

或者您可以从您的语料库构建索引并使用例如 Lucene 并让它为您完成工作。

您也可以考虑使用 LSA(潜在语义分析),您可以在其中获得句子之间的相似性。

于 2013-10-28T19:58:22.703 回答
0

根据我从您的问题(以及您的评论)中了解到的情况,您更感兴趣的是理解单个句子的含义,然后彼此接近。在我看来,统计方法更多的是为了“感受”句子而不是理解它。在我看来,我建议使用深度解析方法。

深入解析句子,了解单词在句子中扮演的角色,了解主-动词-宾语模型(从左到右解析等技术),然后拥有一个词汇表来帮助您对名词和动词进行分类。

例如

"Serious writers, I should say, are on the whole more vain and self-centered than journalists, though less interested in money."

解析这句话,让你明白这句话的主语是“认真的作家”(认真是形容词,作家基本上)。在动词形式中,它表示“是”(当前状态)和“感兴趣”。然后每个动词指向更多的词汇,包括形容词。如果您以正确的方式安排这些词汇表(并继续构建它),我认为您应该解决问题。

于 2013-10-30T13:57:17.053 回答