#Python语种检测项目数据来源:
#https://blog.youkuaiyun.com/btujack/article/details/80643211
import re #用正则表达式,去掉噪声数据
from sklearn.feature_extraction.text import CountVectorizer #抽取出来有用的特征啦,我们抽取1-gram和2-gram的统计特征
from sklearn.model_selection import train_test_split #sklearn自带的分割函数。
from sklearn.naive_bayes import MultinomialNB #把分类器import进来并且训练
class LanguageDetector():
def __init__(self, classifier=MultinomialNB()):
self.classifier = classifier
#在降噪数据上抽取出来有用的特征啦,我们抽取1-gram和2-gram的统计特征
self.vectorizer = CountVectorizer(ngram_range=(1,2), max_features=1000, preprocessor=self._remove_noise)
def _remove_noise(self, document):
noise_pattern = re.compile("|".join(["http\S+", "\@\w+", "\#\w+"])) #\S+表示非空白字符,\@\w+表示@后面的所有字符.noise_pattern是一个删除规则
clean_text = re.sub(noise_pa