使用spaCy分割列表中的复杂名词短语并生成扩充列表

时间:2019-04-03 16:08:35

标签: python nlp spacy

因此,我试图将描述职业的名词短语的“缩写”列表转换为这些名词短语的“完整”列表。它应该看起来像这样:

示例(输入->输出):

  • 总经理和运营经理-> [总经理,运营经理]
  • 公交车和卡车机械师以及柴油机专家-> [公交车机械师,卡车机械师,柴油机专家]
  • 索赔理算人,评估师和审查员-> [索赔理算人,索赔评估师,索赔审查员]
  • 重型车辆和移动设备服务技术人员和机械师-> [重型车辆服务技术员,重型车辆机械师,移动设备服务技术员,移动设备机械师]

我尝试了一种基于规则的沉重方法,但这并不是我喜欢的。 我还使用spaCy尝试了简单的分块,但是初始结果也不是完美的。

spaCy代码如下:

import spacy
nlp = spacy.load("en_core_web_sm")

def get_chunks(sentence):
    res = []

    doc = nlp(u'{}'.format(sentence))

    for np in doc.noun_chunks:
        res.append(np.text)

    return res

对于上述确切的输入,代码返回:

  • ['操作','经理']
  • ['卡车和卡车机械师,'柴油发动机专家']
  • [“索赔调整人”,“评估师”,“审查员”,“调查员”]
  • [“重型车辆”,“移动设备服务技术人员”,“力学”]

我正在考虑从这里开始采用基于规则的方法,但是也许有人有更好的建议?

谢谢和欢呼!

0 个答案:

没有答案