代码之家  ›  专栏  ›  技术社区  ›  hamsy

R中的自定义令牌注释

  •  0
  • hamsy  · 技术社区  · 8 年前

    目前我正在做一个NLP项目。这对我来说是全新的,这就是为什么我真的很难在R中实现NLP技术。

    为了训练提取模型,我必须有一个带注释的语料库。这就是我被困的地方。如何在文本中注释机器?以下是文本示例:

    这个 空中杰克3219E 电动剪式升降机是一种由4 x 6 V电池供电的自推进装置。这台机器很容易充电,只要把它插进电源就行了。该装置可用于施工、制造和维护作业,作为任何平坦铺面上的工作装置。你可以在室内和室外使用它。由于其无标记轮胎,机器不会在地板上留下任何可见痕迹。机器可以全高度驱动,操作非常简单。S3219E具有250千克的平台有效载荷容量。在室内和室外操作时,它可以处理两个人。通过合力安全学院了解我们的培训。

    空中杰克3219E -这是一台需要识别和标记的机器。 我想得到类似于词性标记的结果,但不是名词和动词-制造商和模型。所有其他单词都可能被标记为无关。

    手动注释非常昂贵,而且不是一个选项,因为通常描述非常长且混乱。

    有没有一种方法可以调整词性标记器并使用定制词典进行标记?感谢您的帮助!

    1 回复  |  直到 8 年前
        1
  •  0
  •   parsethis    8 年前

    编辑:(在撰写本文的最后,我意识到您计划使用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表示的开始 实体短语的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标记来捕获这些单词(参见上面的示例)

    看见 this link (ipython笔记本)有关标记序列如何寻找我的完整示例,我的工作基于此。

    建立一本大词典

    我们放弃了互联网,使用或拥有数据,从合作伙伴那里获得数据库。并建立一个巨大的字典,作为CRF和一般搜索的功能。看见 ahocorosick 用于python中基于trie的快速关键字搜索。

    希望这能有所帮助!