NLP:基于snownlp库对文本实现提取文本关键词和文本摘要daiding

NLP:基于snownlp库对文本实现提取文本关键词和文本摘要

目录

输出结果

1、测试文本

设计思路

核心代码


输出结果

1、测试文本

今天一大早,两位男子在故宫抽烟对镜头炫耀的视频在网络上传播,引发网友愤怒。有人感到后怕,600年的故宫真要这两个人给点了,万死莫赎。也有评论称,把无知当成炫耀的资本,丢人!
视频中两位男子坐在故宫公共休息区的遮阳伞下,面对镜头问出:“谁敢在故宫抽烟?”语气极其嚣张,表情带有挑衅意味。话音刚落,另外一位男子面向镜头吸了一口烟。而视频中两人也表示知道有故宫禁止吸烟的规定。
事实上,2013年5月18日是国际博物馆日,故宫从这一天开始至今一直实行全面禁烟。根据规定,故宫博物院全体员工在院合作单位和个人不管在室内和室外,也不分开放区与工作区,一律禁止吸烟,对违反禁止吸烟规定的人员将进行严格处罚并通报全院。
此外,在2015年6月1日起北京全市也开始了《控制吸烟条例》,规定公共场所工作场所室内环境室外排队等场合禁止吸烟,违者将最高被罚200元,全市统一设立举报电话12320。
视频在网络上传播开来,不少网友担心故宫的安危,称一旦发生火情,后果不堪设想,有网友表示,这样的行为应该被旅游景区拉近黑名单,建议终身禁止进入任何景区和各种场馆。


 

设计思路

后期更新……

核心代码

class SnowNLP Found at: snownlp.__init__

class SnowNLP(object):
    def __init__(self, doc):
        self.doc = doc
        self.bm25 = bm25.BM25(doc)
    
    @property
    def words(self):
        return seg.seg(self.doc)
    
    @property
    def sentences(self):
        return normal.get_sentences(self.
         doc)
    
    @property
    def han(self):
        return normal.zh2hans(self.doc)
    
    @property
    def pinyin(self):
        return normal.get_pinyin(self.doc)
    
    @property
    def sentiments(self):
        return sentiment.classify(self.doc)
    
    @property
    def tags(self):
        words = self.words
        tags = tag.tag(words)
        return zip(words, tags)
    
    @property
    def tf(self):
        return self.bm25.f
    
    @property
    def idf(self):
        return self.bm25.idf
    
    def sim(self, doc):
        return self.bm25.simall(doc)
    
    def summary(self, limit=5):
        doc = []
        sents = self.sentences
        for sent in sents:
            words = seg.seg(sent)
            words = normal.filter_stop(words)
            doc.append(words)
        
        rank = textrank.TextRank(doc)
        rank.solve()
        ret = []
        for index in rank.top_index(limit):
            ret.append(sents[index])
        
        return ret
    
    def keywords(self, limit=5, 
     merge=False):
        doc = []
        sents = self.sentences
        for sent in sents:
            words = seg.seg(sent)
            words = normal.filter_stop(words)
            doc.append(words)
        
        rank = textrank.KeywordTextRank
         (doc)
        rank.solve()
        ret = []
        for w in rank.top_index(limit):
            ret.append(w)
        
        if merge:
            wm = words_merge.SimpleMerge
             (self.doc, ret)
            return wm.merge()
        return ret

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个处女座的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值