特征提取
总结起来2步
- 分词
- 词向量
1.分词
直接参考结巴的分词就可以
#注意: 中文分词后要用空格做字符
#" ".join(text)
2.词向量
这是特征提取的关键部分
# 读取停用词表
def get_stopwords(stop_file):
f = open(file, encoding="utf-8")
stopwords = f.read()
stopwords_list = stopwords.split('\n')
stopwords_list = [i for i in stopwords_list]
return stopwords_list
这里使用的是sklearn自带, 因为ngram可由参数设置,结巴没找到。
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer
Tfidf = TfidfVectorizer(token_pattern='\w', ngram_range=(1,3), max_df=1.5, min_df=0.0)
#去停用词构建词向量
vector = CountVectorizer(ngram_range=(1,1), max_df=1.0, min_df=0, stop_words=frozenset(stopwords))
结巴是这样的
keyword = jieba.analyse.tfidf(sentences, topK=500,withWeight=True)
keyword = jieba.analyse.extract_tags(sentences, topK=30, withWeight=True, allowPOS=())
参考链接:
https://www.jianshu.com/p/29aa3ad63f9d
https://github.com/fxsjy/jieba