无监督学习算法: 先抽取出候选词,然后对各个候选词进行打分,然后输出topK个分值最高的候选词作为关键词。 根据打分的策略不同,有不同的算法,例如TF-IDF,TextRank等算法 from jieba import analyse ''' sentence: 待提取关键词的文本 topK: 返回关键词的数量,重要性从高到低排序 withWeight:是否同时返回每个关键词的权重 allowPOS: 词性过滤,为空表示不过滤,若提供则仅返回符合词性要求的关键词 默认为('ns', 'n', 'vn', 'v'),即仅提取地名、名词、动名词、动词 ''' # 原始文本 text = "线程是程序执行时的最小单位,它是进程的一个执行流,\ 是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,\ 线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。\ 线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。\ 同样多线程也可以实现并发操作,每个请求分配一个线程来处理。" # 基于TF-IDF算法进行关键词抽取 tfidf = analyse.extract_tags keywords = tfidf(text,topK=20, withWeight=True, allowPOS=())#list # 基于TextRank算法进行关键词抽取 textrank=analyse.textrank keywords=textrank(text)#list # 输出抽取出的关键词 for keyword in keywords: print(keyword[0],keyword[1])#分别为关键词和相应的权重