【问题标题】:How can I getting NER (Named Entity Recognition) for one word如何获得一个单词的 NER(命名实体识别)
【发布时间】:2021-06-18 13:18:14
【问题描述】:

这是我写给 NER(命名实体识别)的 Python 代码,这是一个用例场景,用户使用 Jupiter notebook 作为给定文本输入。

首先,我编写了一个代码,将场景输入为文本。

text = "customer must be registered if wants to buy the product.unregistered user can’t go to 
the shopping cart. Customer logins to the system by entering valid user id and password for 
the shopping.  customer  can make order or cancel order of the product from the shopping cart  
after login or registration. Customer has to logout after ordering or surfing for the product "

下一步,我必须把它变成一个字符串。

text_combined = str(text)

其次,我将其放入文档中。

doc = nlp(text_combined)

然后我编写了 NER 代码。我已经放了输出的截图。

for ent in doc.ents:
print(ent.text,ent.label_)

最后,我希望像客户这样的实体是一个人。但是代码被标识为一个组织。 (附上截图)你能解释一下这是为什么吗?有没有人可以解决这个问题?

spacy.displacy.render(doc, style='ent',jupyter=True)

【问题讨论】:

  • 您正在加载哪种语言模型?你能在一帧中发布你的代码,而不用拆分它吗?
  • 1.显示您的实际代码,在其中创建 NLP 对象和所有内容。 2. 请勿贴代码截图,将代码复制粘贴为文本。
  • 对不起,我不知道该怎么做。能否请您解释一下如何将此代码作为 NLP Jupiter 代码?

标签: python spacy named-entity-recognition junit-jupiter


【解决方案1】:

spaCy 模型是针对类似报纸的文本进行训练的。他们拥有的一些标签是 PER(个人)和 ORG(组织)。但它会根据报纸文章了解这些内容。因此,如果您有这样的新闻文章...

茄子有限公司的约翰·史密斯今天报道了一款新产品...

那么它会被这样标记:

[Eggplant Limited ORG] 的 [John Smith PER] 今天报道了一款新产品...

所以命名实体是专有名词

在您的示例中,“客户”不是专有名词,因此没有理由将其标记为 PER。它被标记为 ORG 有点奇怪,我认为这是一个错误。至于为什么会出现错误,很难说清楚,但模型并不完美,它们确实有错误,所以你必须能够在你的应用程序中处理类似的问题。

【讨论】:

  • 您能否告诉我另一种将客户识别为“PERSON”的方法?因为我期望将这个用例场景转换为用例图。如果您有任何想法,请发布。
  • 如果您只想将“客户”一词标记为“人员”,您可以使用 spaCy 的基于规则的功能。不过,我会使用与 PERSON 不同的标签,因为这与默认的 NER 模型所做的完全不同。我也不知道“将这个用例场景转换为用例图”是什么意思。这是 spaCy 的基于规则的文档:spacy.io/usage/rule-based-matching
  • polm 你能帮我完成我的 NLP 作业吗?
  • 欢迎您继续提问,但我无法为您提供一对一的支持。
猜你喜欢
  • 2017-11-13
  • 2017-06-19
  • 2012-04-20
  • 2019-01-02
  • 2020-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-03
相关资源
最近更新 更多