【问题标题】:Extracting all nlp entities to another column将所有 nlp 实体提取到另一列
【发布时间】:2021-12-25 10:51:11
【问题描述】:

我正在尝试将所有实体提取到我的数据集中的另一列。

我已经在我的完整数据集的一小部分上尝试了下面的代码并且它可以工作,但是一旦我输入我的整个数据集,我就会收到以下错误:

TypeError: 'float' 类型的对象没有 len()

def all_ents(v):
    return [(ent.text, ent.label_) for ent in nlp(v).ents]

dt['Entities'] = dt['text'].apply(lambda v: all_ents(v))

有人可以帮忙吗?提前致谢!

【问题讨论】:

  • dt['Entities'] = dt['text'].astype(str).apply(lambda v: all_ents(v)) 可能会解决它。
  • 我也试过这个: dt['text'].fillna('', inplace=True) print(dt['text'].map(len).max()) 。效果也很好!

标签: python pandas nlp spacy text-processing


【解决方案1】:

您的text 列包含一些浮点值或np.nans。

将该列的所有值转换为字符串更安全:

dt['Entities'] = dt['text'].astype(str).apply(lambda v: all_ents(v))
#                          ^^^^^^^^^^^^

【讨论】:

    猜你喜欢
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 2020-06-27
    • 1970-01-01
    • 2017-03-01
    • 1970-01-01
    相关资源
    最近更新 更多