分词工具:jieba
分词
下载
: pip3 install jieba
使用
: import jieba
在这里插入代码片
result=jieba.cut("今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,所以每个人不要放弃今天。")
但是有一个问题是,cut
创建的对象它并不是一个立即可用的具体数据结构(例如列表),而是一个需要迭代(使用 for 循环或 next())才能访问的数据结构。
假如你直接print(result)
得到的结果是一个生成器对象
<generator object Tokenizer.cut at 0x0000029D10828200>
这是需要我们进行转化,比如转换成列表
result_list=list(result)
print(result_list)
# ['今天', '很', '残酷', ',', '明天', '更', '残酷', ',', '后天', '很', '美好', ',', '但',
# '绝对', '大部分', '是', '死', '在', '明天', '晚上', ',', '所以', '每个', '人', '不要', '放弃',
# '今天', '。']
jieba解决中文分词问题并进行特征值化
from sklearn.feature_extraction.text import CountVectorizer
import jieba
def cutword():
# 用结巴进行分词处理
text01 = "今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,所以每个人不要放弃今天。"
count_result01 = jieba.cut(text01)
# 返回的是一个可以按需生成分词结果的生成器对象,而不是一个列表或字符串。
# 将生成器转换成列表
count_result_list01 = list(count_result01)
# 将列表转换成字符串列表
c1 = ' '.join(count_result_list01)
# Example: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'
# 对于文本数据fit_transform 需要一个 字符串列表,每个元素是一个文本样本。
return c1
def countdev():
"""
对文本进行特征值化
:return:
"""
# 实列化
cv = CountVectorizer()
c1 = cutword()
data = cv.fit_transform([c1]) # 生成词汇表并转换成数字特征矩阵
print(cv.get_feature_names_out())
print(data.toarray())
return None
if __name__ == '__main__':
countdev()
结果展示 ['不要' '今天' '后天' '大部分' '所以' '放弃' '明天' '晚上' '残酷' '每个' '绝对' '美好']
[[ 1 2 1 1 1 1 2 1 2 1 1 1]]