电商网站建设案例,自己建网站怎么做seo,甘肃省作风建设年活动有网站,windows挂wordpress1 one-hot representation 该单词对应所在元素为1#xff0c;向量中其他元素均为0#xff0c;向量的维度就等于词库中的单词数目 所有向量都是互相正交的#xff0c;我们无法有效的表示两个向量间的相似度 向量维度过大。 from sklearn.feature_extraction.text…1 one-hot representation 该单词对应所在元素为1向量中其他元素均为0向量的维度就等于词库中的单词数目 所有向量都是互相正交的我们无法有效的表示两个向量间的相似度 向量维度过大。 from sklearn.feature_extraction.text import CountVectorizer import seaborn as sns import matplotlib.pyplot as plt
corpus [Time flies flies like an arrow., Fruit flies like a banana.]
vocab set([word for sen in corpus for word in sen.split( )])
one_hot_vectorizer CountVectorizer(binaryTrue) one_hot one_hot_vectorizer.fit_transform(corpus).toarray()
print(one_hot_vectorizer.vocabulary_) print(one_hot)
sns.heatmap(one_hot, annotTrue,cbarFalse, xticklabelsvocab, yticklabels[Sentence 2]) plt.show() {time: 6, flies: 3, like: 5, an: 0, arrow: 1, fruit: 4, banana: 2} [[1 1 0 1 0 1 1] [0 0 1 1 1 1 0]] 2 使用sklearn计算tfidf TF-IDFterm frequency–inverse document frequency词频-逆向文件频率是一种用于信息检索information retrieval与文本挖掘text mining的常用加权技术。字词的重要性随着它在文件中出现的次数成正比增加但同时会随着它在语料库中出现的频率成反比下降。 TF是词频(Term Frequency) 词频TF表示词条关键字在文本中出现的频率。这个数字通常会被归一化(一般是词频除以文章总词数), 以防止它偏向长的文件。 IDF是逆向文件频率(Inverse Document Frequency) 逆向文件频率 (IDF) 总文件数目除以包含该词语的文件的数目再将得到的商取对数得到。罕见词的IDF很高高频词的IDF很低。 TF-IDF实际上是TF * IDF
应用 关键字计算出文章中每个词的TF-IDF值之后进行排序选取其中值最高的几个作为关键字。 文章的相似性 计算出每篇文章的关键词从中各选取相同个数的关键词合并成一个集合计算每篇文章对于这个集合中的词的词频生成两篇文章各自的词频向量进而通过欧氏距离或余弦距离求出两个向量的余弦相似度值越大就表示越相似。 from sklearn.feature_extraction.text import CountVectorizer,TfidfTransformer,TfidfVectorizer from pprint import pprint import seaborn as sns from matplotlib.pylab import plt
corpus [Time flies flies like an arrow., Fruit flies like a banana.]
one_hot_vectorizer CountVectorizer() one_hot one_hot_vectorizer.fit_transform(corpus).toarray()
pprint(one_hot) #输出词频
transformer TfidfTransformer() tfidf transformer.fit_transform(one_hot)
vocab one_hot_vectorizer.get_feature_names()
print(vocab) #打印词典 pprint(transformer.idf_ ) #输出逆文档频率 pprint(tfidf.toarray()) #输出TFIDF
sns.heatmap(tfidf.toarray(), annotTrue, cbarFalse, xticklabelsvocab, yticklabels [Sentence 1, Sentence 2])
plt.show()
array([[1, 1, 0, 2, 0, 1, 1], [0, 0, 1, 1, 1, 1, 0]], dtypeint64) [an, arrow, banana, flies, fruit, like, time] array([1.40546511, 1.40546511, 1.40546511, 1. , 1.40546511, 1. , 1.40546511]) array([[0.42519636, 0.42519636, 0. , 0.60506143, 0. , 0.30253071, 0.42519636], [0. , 0. , 0.57615236, 0.40993715, 0.57615236, 0.40993715, 0. ]])