【问题标题】:Extracting phrases from 2-grams从 2-gram 中提取短语
【发布时间】:2012-09-12 10:45:06
【问题描述】:
The Foo Fighters performed at... 
(The Foo) (Foo Fighters) (Fighters performed) (performed at)...

我有一个由许多句子连接而成的 2-gram 列表。我想从整个列表中提取两个和三个单词(The Foo FightersBill Gates)的短语。但我想拒绝较长的短语 (to cancel this newsletter, please click...)。

编辑:也就是说,我想提取那些可能是实体的短语,例如名词。

对此有什么好的方法?


我想出的最简单的方法是只考虑两个词的短语并过滤停用词。但它不会接受The Foo Fighters。我还简要地考虑过使用 TF-IDF 来降低太常见的短语。

【问题讨论】:

  • 你是说你想要 common 2 克和 3 克? (换句话说,Bill GatesThe Foo Fighters 与其他 2-gram 和 3-gram 有何区别?)
  • 是的,我猜这就是最简单的方法。但如果它们是重复句子(或句子片段)的一部分,我也想拒绝它们。
  • 所以您想要每次出现在不同上下文中的常见 2/3-gram? (还有 - 你想要专有名词的所有 n-gram,以便它们大写吗?)
  • 是的,如果这让他们可能认为他们是实体(如专有名词/普通名词)。而且它们可能不会大写,因为它们是像电子邮件一样的随意交流。
  • 不过,这似乎很明显应该在您的方法中得到重视。 (你也可以考虑非大写的频率,并减少它的权重)。

标签: python algorithm information-retrieval


【解决方案1】:

对于大学。项目我必须做一些与你描述的非常相似的事情。

我们尝试了以下方法:

  1. 获取每个 2-gram 的 idf 值(我们使用 Bing Developer API,虽然不准确,但它可以评估短语是否有 10 次点击或 10,000,000 次点击)。当然必须进行规范化(在由非常常见的单词组成的 2-gram 上出现大量点击毫无意义)。
  2. Wikipedia - 我们尝试在 wikipedia 中搜索该短语(搜索是否有文章,或者该短语是其子字符串的文章),并获取匹配良好的短语
  3. 另一种高级的特定案例算法,由 Ran El-Yaniv 在一篇文章中描述为 Co-Occuring Ranking

从上面 3 点来看,基于 wikipedia 的算法在很大程度上取得了最好的性能(p_value


我们的具体做法是:

  • 每种算法(表示为 scorer)为每个 2-gram 打分。
  • 然后我们运行第二个算法(过滤器)来选择“最佳”2-gram。我们尝试了简单的百分比算法(例如:“获得前 7%”)、固定分数(例如:“高于 0.5”)和动态算法,在分数中寻找较大的差距,并用它来决定服用多少 2 克。

对于 wikipedia ranker - 固定和动态的得分相似,对于其他 - 动态是我们尝试过的最好的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 2013-09-16
    • 1970-01-01
    相关资源
    最近更新 更多