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

NLTK和语言检测

  •  31
  • niklassaers  · 技术社区  · 14 年前

    如何检测使用NLTK编写的文本的语言?

    我看到的例子使用 nltk.detect ,但是当我在Mac上安装它时,我找不到这个包。

    3 回复  |  直到 7 年前
        1
  •  34
  •   Mark Cramer    7 年前

    您是否遇到以下代码片段?

    english_vocab = set(w.lower() for w in nltk.corpus.words.words())
    text_vocab = set(w.lower() for w in text if w.lower().isalpha())
    unusual = text_vocab.difference(english_vocab) 
    

    http://groups.google.com/group/nltk-users/browse_thread/thread/a5f52af2cbc4cfeb?pli=1&safe=active

    或者下面的演示文件?

    https://web.archive.org/web/20120202055535/http://code.google.com/p/nltk/source/browse/trunk/nltk_contrib/nltk_contrib/misc/langid.py

        2
  •  22
  •   Mona Jalal    7 年前

    这个库也不是来自NLTK,但肯定有帮助。

    $sudo pip安装langdetect

    支持的python版本2.6、2.7、3.x。

    >>> from langdetect import detect
    
    >>> detect("War doesn't show who's right, just who's left.")
    'en'
    >>> detect("Ein, zwei, drei, vier")
    'de'
    

    https://pypi.python.org/pypi/langdetect?

    P.S.:不要期望它始终正常工作:

    >>> detect("today is a good day")
    'so'
    >>> detect("today is a good day.")
    'so'
    >>> detect("la vita e bella!")
    'it'
    >>> detect("khoobi? khoshi?")
    'so'
    >>> detect("wow")
    'pl'
    >>> detect("what a day")
    'en'
    >>> detect("yay!")
    'so'
    
        3
  •  19
  •   burgersmoke    11 年前

    虽然这不在NLTK中,但我在另一个基于Python的库中获得了很好的结果:

    https://github.com/saffsd/langid.py

    这非常容易导入,并且在其模型中包含大量语言。