Language_detector base on ML
项目流程与步骤
是一个有监督的文本分类问题。
读入文件并进行预处理(清洗,分词)
文本进行向量化表示(TF-IDF,BOW,word2vec,word embedding,ELMo…)
建模(机器学习,深度学习方法)
模型封装以备后续使用
项目部署到Web框架(基于Flask)
数据预处理(清洗,分词)
数据读入并查看数据
twitter数据,包含English, French, German, Spanish, Italian 和 Dutch 6种语言
1 | !head -5 data.csv |
1 december wereld aids dag voorlichting in zuidafrika over bieten taboes en optimisme,nl
1 millón de afectados ante las inundaciones en sri lanka unicef está distribuyendo ayuda de emergencia srilanka,es
1 millón de fans en facebook antes del 14 de febrero y paty miki dani y berta se tiran en paracaídas qué harías tú porunmillondefans,es
1 satellite galileo sottoposto ai test presso lesaestec nl galileo navigation space in inglese,it
10 der welt sind bei,de
1 | in_f = open('data.csv') |
[(‘1 december wereld aids dag voorlichting in zuidafrika over bieten taboes en optimisme’,
‘nl’),
(‘1 millón de afectados ante las inundaciones en sri lanka unicef está distribuyendo ayuda de emergencia srilanka’,
‘es’),
(‘1 millón de fans en facebook antes del 14 de febrero y paty miki dani y berta se tiran en paracaídas qué harías tú porunmillondefans’,
‘es’),
(‘1 satellite galileo sottoposto ai test presso lesaestec nl galileo navigation space in inglese’,
‘it’),
(‘10 der welt sind bei’, ‘de’)]
数据集和验证集的拆分
1 | from sklearn.model_selection import train_test_split |
数据清洗
用正则表达式对数据进行去噪处理,主要是清楚网址,@,#等内容
1 | import re |
文本进行向量化表示
(TF-IDF,BOW,word2vec,word embedding,ELMo…)
词频向量化和表示
1 | from sklearn.feature_extraction.text import CountVectorizer |
import 分类器
注意这里分类器拟合需要对vector先进行transform处理
1 | from sklearn.naive_bayes import MultinomialNB #多项式分类器 |
3.3 查看分类效果
1 | classifier.score(vec.transform(x_test), y_test) |
建模(机器学习,深度学习方法)
模型存储
1 | model_path = "model/language_detector.model" |
模型加载
1 | new_language_detector = LanguageDetector() |
使用加载的模型预测
1 | new_language_detector.predict("10 der welt sind bei") |
模型封装以备后续使用
1 | import re |