Nlp 识别特定方言中的一般短语

Nlp 识别特定方言中的一般短语,nlp,nltk,opennlp,Nlp,Nltk,Opennlp,我正在寻找一种算法或方法,可以帮助从具有特定方言的文本语料库中识别一般短语(它来自特定领域,但对于我来说是英语方言)——例如,以下片段可能来自与世界或魔兽或MMORPHs相关的更大语料库 玩家以第三人称或第一人称视图控制游戏世界中的角色化身,探索地形,与各种怪物战斗,完成任务,并与非玩家角色(NPC)或其他玩家交互。与其他MMORPG类似,《魔兽世界》要求玩家支付订阅费,或者购买预付游戏卡,支付一定的游戏时间,或者使用信用卡或借记卡定期支付 作为上述内容的输出,我想确定以下一般短语: 第一人称

我正在寻找一种算法或方法,可以帮助从具有特定方言的文本语料库中识别一般短语(它来自特定领域,但对于我来说是英语方言)——例如,以下片段可能来自与世界或魔兽或MMORPHs相关的更大语料库

玩家以第三人称或第一人称视图控制游戏世界中的角色化身,探索地形,与各种怪物战斗,完成任务,并与非玩家角色(NPC)或其他玩家交互。与其他MMORPG类似,《魔兽世界》要求玩家支付订阅费,或者购买预付游戏卡,支付一定的游戏时间,或者使用信用卡或借记卡定期支付

作为上述内容的输出,我想确定以下一般短语:

  • 第一人称
  • 魔兽世界
  • 预付游戏卡
  • 借记卡
  • 注:

  • 先前的问题与我的问题类似,但为了澄清,我的问题有以下区别:

    a。我正在尝试使用现有的工具包,如NLTK、OpenNLP等

    b。我对识别句子中的其他词性不感兴趣

    c。我可以使用人工干预,算法将识别出的名词短语呈现给人类专家,然后人类专家可以确认或拒绝发现,但是我们没有资源来训练手边标注数据的语言模型


  • Nltk内置了词性标记,已被证明非常擅长识别未知单词。这就是说,你似乎误解了名词是什么,你可能应该巩固你对词类和问题的理解

    例如,在
    第一人称中,first是一个形容词。你可以自动假设相关的形容词是这个短语的一部分

    或者,如果您想要识别一般短语,我的建议是实现一个简单的马尔可夫链模型,然后寻找特别高的转移概率

    如果您正在寻找Python中的马尔可夫链实现,我将向您指出我在当天编写的要点:

    如果你想获得比这更高的水平,你将很快进入论文领域。我希望这有帮助


    另一方面,Nltk包含大量预注释的语料库,这些语料库可能适合您的目的。

    您似乎正在尝试进行名词短语提取。Python库包括两个现成的名词短语提取实现

    最简单的入门方法是使用默认的
    FastNPExtractor
    ,它基于所描述的Shlomi Babluki算法

    换成另一个实现(基于NLTK的chunker)相当容易

    from text.np_extractors import ConllExtractor
    
    blob = TextBlob(text, np_extractor=ConllExtractor())
    
    print(blob.noun_phrases)  # ['character avatar', 'game world' ...]
    

    如果这两个都不够,您可以创建自己的名词短语提取器类。我建议大家看看下面的例子。为了更好地理解名词短语组块,请查看。

    非常感谢Slater,我相信我正在寻找一般短语,例如“生存还是毁灭”是我想识别的一个短语。@user1172468那么我肯定会建议使用markoc链方法。你知道一个案例研究或教程会讨论类似的内容吗?出于好奇,你是如何编译魔兽世界聊天语料库的?哦,这只是一个例子-真正的目标应用程序是针对一个垂直域的,这将是一个糟糕的例子。你可能对这个线程感兴趣:
    from text.np_extractors import ConllExtractor
    
    blob = TextBlob(text, np_extractor=ConllExtractor())
    
    print(blob.noun_phrases)  # ['character avatar', 'game world' ...]