from polyglot.detect import Detector
mixed_text = u"""
China (simplified Chinese: 中国; traditional Chinese: 中國),
officially the People's Republic of China (PRC), is a sovereign state
located in East Asia.
"""
for language in Detector(mixed_text).languages:
print(language)
# name: English code: en confidence: 87.0 read bytes: 1154
# name: Chinese code: zh_Hant confidence: 5.0 read bytes: 1755
# name: un code: un confidence: 0.0 read bytes: 0
import spacy
from spacy_langdetect import LanguageDetector
nlp = spacy.load("en")
nlp.add_pipe(LanguageDetector(), name="language_detector", last=True)
text = "This is English text Er lebt mit seinen Eltern und seiner Schwester in Berlin. Yo me divierto todos los días en el parque. Je m'appelle Angélica Summer, j'ai 12 ans et je suis canadienne."
doc = nlp(text)
# document level language detection. Think of it like average language of document!
print(doc._.language['language'])
# sentence level language detection
for i, sent in enumerate(doc.sents):
print(sent, sent._.language)
TextBlob。需要NLTK包,使用Google。
pip install textblob
Polyglot。需要numpy和一些神秘的库,
不太可能在Windows下工作。(对于Windows,从here获取适当版本的PyICU、Morfessor和PyCLD2,然后只需pip install downloaded_wheel.whl
)即可检测混合语言文本。pip install polyglot
要安装依赖项,请运行:
sudo apt-get install python-numpy libicu-dev
chardet还有一个特性,即如果在范围(127-255)内有字符字节,则可以检测语言:
pip install chardet
langdetect需要大量文本。它在幕后使用了非确定性的方法。这意味着对于同一个文本样本可以得到不同的结果。文档中说,必须使用以下代码来确定:
pip install langdetect
pip install guess_language-spirit
langid同时提供两个模块
以及一个命令行工具:
pip install langid
FastText是一个文本分类器,可以用来识别176种具有适当models for language classification的语言。下载this model,然后:
pip install fasttext
当用于并行化时,
langdetect
出现问题,并且失败。但是spacy_langdetect
是一个包装器,您可以使用它来实现这个目的。您还可以使用以下代码段:你看过langdetect吗?
相关问题 更多 >
编程相关推荐