【问题标题】:What languages are supported for nltk.word_tokenize and nltk.pos_tagnltk.word_tokenize 和 nltk.pos_tag 支持哪些语言
【发布时间】:2022-02-11 01:35:13
【问题描述】:

我需要对多种语言的文本进行名称实体提取:西班牙语、葡萄牙语、希腊语、捷克语、中文。

是否有这两个函数支持的所有语言的列表?有没有一种方法可以使用其他语料库以便包含这些语言?

【问题讨论】:

    标签: nlp nltk


    【解决方案1】:

    默认情况下,这两个函数都只支持英文文本。它实际上不在文档中,但您可以通过查看源代码来查看:

    1. pos_tag() 函数从该文件加载一个标记器:'taggers/maxent_treebank_pos_tagger/english.pickle'。 (see here)

    2. word_tokenize() 函数使用 Treebank 分词器,它使用正则表达式对文本进行分词,就像(英语)Penn Treebank Corpus 中一样。 (see here)

    【讨论】:

    • 但是 word_tokenize 很适合西方语言。这是否意味着我可以使用它但不能用于不使用空格分隔单词的语言?
    • 他们解释了算法here。由于西方语言通常用空格分隔,它应该可以正常工作。我只试过德语,看起来还不错。
    【解决方案2】:

    NLTK 分词器支持的语言列表如下:

    • '捷克语'
    • '丹麦语'
    • '荷兰语'
    • '英文'
    • '爱沙尼亚语'
    • '芬兰语'
    • '法语'
    • '德国'
    • '希腊'
    • '意大利语'
    • '挪威语'
    • '抛光'
    • '葡萄牙语'
    • '俄语'
    • '斯洛文尼亚',
    • '西班牙语'
    • '瑞典语'
    • '土耳其语'

    它对应于存储在 C:\Users\XXX\AppData\Roaming\nltk_data\tokenizers\punkt 中的泡菜(在 Windows 中)。这是您在标记时使用“语言”键输入的内容,例如

    nltk.word_tokenize(text, language='italian')
    

    【讨论】:

      猜你喜欢
      • 2013-09-09
      • 1970-01-01
      • 1970-01-01
      • 2013-03-17
      • 1970-01-01
      • 2021-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多