自然语言处理入门

TextRank是自然语言处理领域一种比较常见的关键词提取算法,可用于提取关键词、短语和自动生成文本摘要。TextRank是由PageRank算法改进过来的,所以有大量借鉴PageRank的思想,其处理文本数据的过程主要包括以下几个步骤:


(1)首先,将原文本拆分为句子,在每个句子中过滤掉停用词(可以不选),并只保留指定词性的单词,由此可以得到句子和单词的集合。


(2)每个单词作为PageRank中的一个节点。设窗口大小为k,假设一个句子所组成的单词可以表示为w1,w2,w3,…, wn.


则w1,w2, …, wk、w2,w3,…,wk+1、w3,w4,…,wk+2等都是一个窗口,在一个窗口内任意两个单词之间存在一条无向无权的边。


(3)基于上面的节点和边构成图,可以据此计算出每个节点的重要性。最重要的若干单词可以作为区分文本类别和主题的关键词。






基于荣耀V10手机评论数据的Python代码实现如下所示:
import codecs  
from textrank4zh import TextRank4Keyword, TextRank4Sentence  
  
#读取华为荣耀天猫旗舰店荣耀V10手机的评论文本数据  
text = codecs.open('D://data/tmall/origin_tmall_review.txt', 'r', 'utf-8').read()  
  
tr4w = TextRank4Keyword()  
  
tr4w.analyze(text=text, lower=True, window=2)  
  
print( '关键词:' )  
for item in tr4w.get_keywords(10, word_min_len=1):  
    print("{} 出现的频率为:{:.6f}".format(item.word, item.weight))  
  
print( '关键短语:' )  
for phrase in tr4w.get_keyphrases(keywords_num=10, min_occur_num=5):  
    print(phrase)  
  
tr4s = TextRank4Sentence()  
tr4s.analyze(text=text, lower=True, source = 'all_filters')  
  
print()  
print( '摘要:' )  
for item in tr4s.get_key_sentences(num=3):  
    #index是语句在文本中位置,weight是权重  
    print("第{}句出现的频率为:{:.6f},内容为:{}".format(item.index, item.weight, item.sentence)) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值