文档信息的向量化-词袋模型、gensim实现和词条分布

文档信息的向量化-词袋模型、gensim实现和词条分布

 

from gensim import corpora
texts = [['human', 'interface', 'computer']]
#  fit dictionary
dct = corpora.Dictionary(texts) 
print(dct.token2id)

通过.属性来使用

from gensim import corpora
texts = [['human', 'interface', 'computer']]
#  fit dictionary
dct = corpora.Dictionary(texts) 
print(dct.token2id)
#  向词典增加词条
dct.add_documents([['cat', 'say', 'meow'], ['dog']])
print(dct.token2id)

from gensim import corpora
texts = [['human', 'interface', 'computer']]
#  fit dictionary
dct = corpora.Dictionary(texts) 
print(dct.token2id)
#  向词典增加词条
dct.add_documents([['cat', 'say', 'meow'], ['dog']])
print(dct.token2id)
obj1 = dct.doc2bow(['this', 'is', 'cat', 'not', 'a', 'dog'])
print(obj1)
obj2 = dct.doc2bow(['this', 'is', 'cat', 'not', 'a', 'dog'], return_missing=True)
print(obj2)

from gensim import corpora
texts = [['human', 'interface', 'computer']]
#  fit dictionary
dct = corpora.Dictionary(texts) 
print(dct.token2id)
#  向词典增加词条
dct.add_documents([['cat', 'say', 'meow'], ['dog']])
print(dct.token2id)
obj1 = dct.doc2bow(['this', 'is', 'cat', 'not', 'a', 'dog'])
print(obj1)
obj2 = dct.doc2bow(['this', 'is', 'cat', 'not', 'a', 'dog'], return_missing=True)
print(obj2)
obj3 = dct.doc2idx(['this', 'is', 'a', 'dog', 'not', 'cat'])
print(obj3)

import pandas as pd
import jieba
#  设定分词以及清楚停用词函数
#  熟悉python的话,可以直接使用open('stopword.txt').readlines() 获取停用词list,效率会更高
stoplist = list(pd.read_csv('../data/停用词.txt', names=['w'], sep='aaa', encoding='utf-8').w)

def m_cut(text):
    return [word for word in jieba.cut(text) if word not in stoplist and len(word) > 1]
#  设定数据库转换函数
def m_appdf(chapnum):
    tmpdf = pd.DataFrame(m_cut(chapter.txt[chapnum + 1]), columns=['word'])
    tmpdf['chap'] = chapter.index[chapnum]
    return tmpdf

#  全部读入并存入数据框
df0 = pd.DataFrame(columns=['word', 'chap'])  # 初始化结果数据框
for i in range(len(chapter)):
    df0 = df0.append(m_appdf(i))
df0.head()

#  输出为序列格式
df0.groupby(['word', 'chap']).agg('size').tail(10)

#  直接输出为数据框
t2d = pd.crosstab(df0.word, df0.chap)
t2d

#  计算词条出现的总频率,准备进行低频词的删除
totnum = t2d.agg(func='sum', axis=1)
totnum

totclear = t2d.iloc[list(totnum >= 10)]
totclear

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您解答使用 Gensim 库对文本进行特征向量化的几种方法。 1. 词袋模型 词袋模型是一种将文本表示成词汇表中每个词的出现次数的方式。使用 Gensim 库可以通过以下代码实现: ```python from gensim import corpora # 将文本转换为词袋 texts = [['apple', 'orange', 'banana'], ['banana', 'orange', 'apple', 'apple'], ['orange', 'banana']] dictionary = corpora.Dictionary(texts) corpus = [dictionary.doc2bow(text) for text in texts] # 输出词袋 print(corpus) ``` 2. TF-IDF模型 TF-IDF模型是一种将文本表示为每个单词的权重的方式。在 Gensim 库中,可以使用 TfidfModel 类实现。 ```python from gensim import models tfidf = models.TfidfModel(corpus) corpus_tfidf = tfidf[corpus] # 输出TF-IDF模型 print(corpus_tfidf) ``` 3. LDA模型 LDA模型是一种将文本表示为主题分布的方式。在 Gensim 库中,可以使用 LdaModel 类实现。 ```python from gensim import models lda = models.LdaModel(corpus_tfidf, num_topics=2, id2word=dictionary, passes=10) corpus_lda = lda[corpus_tfidf] # 输出LDA模型 for doc in corpus_lda: print(doc) ``` 4. 词向量模型 词向量模型是一种将单词表示为向量的方式。在 Gensim 库中,可以使用 Word2Vec 类实现。 ```python from gensim.models import Word2Vec sentences = [['apple', 'orange', 'banana'], ['banana', 'orange', 'apple', 'apple'], ['orange', 'banana']] model = Word2Vec(sentences, min_count=1) words = list(model.wv.vocab) # 输出词向量模型 for word in words: print(word, model[word]) ``` 以上就是使用 Gensim实现文本特征向量化的几种方法。希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值