1

以以下链接为例:http ://www.yelp.com/biz/chef-yu-new-york 。

在名为“评论亮点”的部分中,根据用户提交的评论突出显示了 3 个短语(辣鸡丁、欢乐时光、特价午餐)。显然,这些是出现频率最高的词组,或者出现频率最长的词组,或者其他一些逻辑。

他们的官方解释是这样的:

在他们的评论中,Yelpers 经常提到下面的链接短语。这些不是任何古老的常用短语,它们也是我们的 Yelp 机器人确定的独特、良好、快速的方式来描述这项业务。单击任何短语以查看提及它的所有评论。

我的问题是,他们用什么来挖掘文本输入来获取这些数据点?是基于 Lempel Ziv 的某种算法,还是某种 map reduce?我不是 CS 专业的,所以可能在这里遗漏了一些基础知识。希望得到一些帮助,理论等。

谢谢!

4

2 回答 2

1

我对 Yelp 使用的确切算法没有任何见解,但这是自然语言处理中的常见问题。本质上,您想提取最相关的搭配http://en.wikipedia.org/wiki/Collocation)。

一种简单的方法是提取具有最高 PMI(逐点互信息)的n-gram列表。这个 SO question 解释了如何使用 Python 和 nltk 库来做到这一点:

如何从一系列文本条目中提取常见/重要的短语

于 2013-01-08T17:31:46.160 回答
0

Lempel-Ziv 是一种数据压缩算法,map-reduce 是一种数据处理技术。前者可能不涉及,后者通常有用但在这里不相关。

在不了解 Yelp 代码的详细信息的情况下,无法肯定地说,但他们的“评论亮点”似乎只是基于将该业务评论中出现的所有短语列表,然后显示在评论中更常见的短语这项业务比其他业务。可能会涉及一定数量的自然语言处理以确保它选择名词短语。

于 2011-12-30T00:48:05.950 回答