学习自然语言处理有一段时间了,其实我做的无非就是一些表面功夫,学到最后,还是机器学习顶用。
如题,最近在做一个课题,需要检测一段文字的语言,去掉非英文的文本。
我搜集了一些资料,总结一下:
需要用到Python,以及NLTK包,你可以pip install nltk。
原文在这里:http://blog.alejandronolla.com/2013/05/15/detecting-text-language-with-python-and-nltk/
首先我把代码贴下来(作者年代久远,我修改成3.X版本的语法):
from nltk import wordpunct_tokenize
from nltk.corpus import stopwords
def _calculate_languages_ratios(text):
languages_ratios = {}
tokens = wordpunct_tokenize(text)
words = [word.lower() for word in tokens]
for language in stopwords.fileids():
stopwords_set = set(stopwords.words(language))
words_set = set(words)
common_elements = words_set.intersection(stopwords_set)
languages_ratios[language] = len(common_elements) # language "scor