1

我一直在研究不同的算法,但还没有找到我正在寻找的东西。

Hamming 距离(仅适用于相同长度的字符串) Levenstein 距离(查找类似的词,如 kitten 和 sitten)

我正在寻找的是可以找到关于相同想法的句子的东西。

例如:

Sentence 1: Josh got hurt while playing in the park.
Sentence 2: Josh fell off the slide and got hurt at the park.
Sentence 3: Be careful at the park, your kids could get hurt.
Sentence 4: Josh likes to go shopping.

我正在寻找的会考虑

sentence 1 and 2关于主题,但不是 sentence 3 or 4

我想我可以尝试比较句子中的每个单词?

我将非常感谢任何能指出我正确方向的人。

4

3 回答 3

3

一般来说,您需要使用一些自然语言处理 (NLP)。如果您是该主题的新手,我建议您看一下 nltk。它是一个 Python 库,包含用于解决各种 NLP 问题的工具。他们还有一本免费的书,您可以查看以快速了解您可能需要的工具。

www.nltk.org/book/‎</p>

我希望它有帮助

于 2014-03-28T12:54:32.067 回答
1

查看http://en.wikipedia.org/wiki/Topic_model以了解人们如何根据他们共享的隐藏“主题”对文档进行建模。提到了一些常见的模型和算法。通常,您正在寻找主题模型。如果您正在寻找比 wiki 上的内容更高级的东西,一些谷歌搜索应该会找到论文。

于 2014-03-28T15:45:21.657 回答
0

Levenshtein 和 Hamming 距离非常关注局部级别的差异。如果要寻找句子背后的主题,最好将句子中的所有单词一起考虑。

一个简单的整句方法是tf-idf。如果您将每个句子视为一个文档,然后计算一个术语(单词)在句子中出现的次数,然后除以该术语出现在文档中的数量,您就会得到句子中每个不同术语的数字。相同术语的具有相似数字的句子可能是关于同一主题的。

您可以使用一种简单的方法,然后如果您需要更好的性能,请尝试不同的词形还原或其他分组方案。

与每个句子相关的数字的简单比较是余弦相似度

于 2014-03-28T16:15:18.127 回答