import jieba.posseg
#方式一:
#加载停用词表
stop = [line.strip() for line in open('stop.txt','r',encoding='utf-8').readlines() ]
#导入自定义词典:词语、词频(可省略)、词性(可省略)
jieba.load_userdict("userdict.txt")
s = "线程是程序执行时的最小单位,它是进程的一个执行流,\
是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,\
线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。\
线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。\
同样多线程也可以实现并发操作,每个请求分配一个线程来处理。"
#分词并标注词性
segs = jieba.posseg.cut(s)#<generator object cut at 0x0000025DFFFCAFC0>
final = ''
for seg ,flag in segs:
if seg not in stop:
if flag !='m' and flag !='x':#m数词,x通常用于代表未知数、符号
final +=' '+ seg
print(final)
#方式2
from jieba import analyse
analyse.set_stop_words('stop.txt')
tfidf = analyse.extract_tags
keywords = tfidf(data_str,topK=100,withWeight=True)#list
print('keywords',keywords)