在R中自定义令牌注释



当前我正在从事NLP项目。这对我来说是全新的,这就是为什么我真的很努力地在R中实施NLP技术。一般而言,我需要从描述中提取机器实体。我有一个包含2列的机器词典:制造商和型号。

要训练提取模型,我必须有一个带注释的语料库。那就是我卡住的地方。如何在文本中注释机器?这是文本的示例:

SkyJack 3219E 电动剪刀升降机是一种由4 x 6 V电池供电的自行装置。机器易于充电,只需将其插入电源即可。该单元可用于建筑,制造和维护操作,作为在任何扁平表面上的工作装置。您可以在室内和室外使用它。由于其非标记轮胎,该机器不会在地板上留下任何可见的轨道。该机器可以以全高度驱动,并且非常易于操作。S3219E具有250公斤平台有效载荷能力。在室内和一个室外操作时,它可以处理两个人。通过Heli Safety Academy发现我们的培训。

SkyJack 3219E - 这是一台必须识别和标记的计算机。我想拥有类似于POS标签的结果,而不是名词和动词 - 制造商和模型。所有其他单词都可能被标记为无关紧要的。

手动注释非常昂贵,并且不是一个选择,因为通常描述确实很长且混乱。

有没有一种方法可以调整POS标记器并使用自定义字典进行标记?任何帮助都将不胜感激!

edit :(在撰写本文结束时,我意识到您计划使用R,我所有的算法建议都是基于Python的实现,但我希望您仍然可以从中获得一些想法答案)

通常,这被认为是一个NER(命名实体识别)问题。我在工作中正在处理类似问题的工作。

文本有任何一般结构?

例如,实体名称通常出现在第一个句子中吗?这也许是简化启发式搜索或基于搜索字典的一种方法(例如已知产品)。

注释是过度的吗?

鉴于本质上需要一个您关心的标签,您可能需要的几周标签可能是您所需要的。我正在努力在非结构化句子中发现品牌名称,我们在一周的注释和培训CRF(有条件的随机字段)模型方面做得很好。请参阅pycrfsuite CRF的快速C 实现的好python包装

[编辑]

用于注释我使用了变体的生物标记方案。

这个典型句子的样子:"我们会喜欢在我们附近的维多利亚的秘密",看起来像是标记时。

We O
would O
love O
a O
victoria B-ENT
's I-ENT
secret I-ENT

o表示我关心的实体的单词 o (品牌)。b表示实体短语的 b i代表 i 实体短语的nside。

在您的情况下,您似乎想将制造商和模型项目分开。因此,您可以使用B-Man,I-Man,B-Mod,I-Mod等标签。这是注释的示例:

The O 
Skyjack B-MAN
3219E B-MOD
electric O
scissor O
lift O
etc..

当然,模型的制造商可以在其名称中具有多个单词,因此请使用i-mod,i-man标签捕获它(请参阅上面的工作中的示例)

有关标记序列如何寻找我的完整示例,请参见此链接(Ipython Notebook)。我基于这一点。

构建一个大字典

我们取消了互联网,二手或自己的数据从合作伙伴那里获得了数据库。并构建一个巨大的词典,我们将其用作CRF和一般搜索的功能。请参阅Ahocorosick,以获取基于python的快速基于Trie的关键字搜索。

希望其中一些会有所帮助!

最新更新