国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python提取內(nèi)容關(guān)鍵詞的方法

2020-02-23 00:20:48
字體:
供稿:網(wǎng)友

本文實(shí)例講述了python提取內(nèi)容關(guān)鍵詞的方法。分享給大家供大家參考。具體分析如下:

一個非常高效的提取內(nèi)容關(guān)鍵詞的python代碼,這段代碼只能用于英文文章內(nèi)容,中文因?yàn)橐衷~,這段代碼就無能為力了,不過要加上分詞功能,效果和英文是一樣的。
代碼如下:
# coding=UTF-8
import nltk
from nltk.corpus import brown
# This is a fast and simple noun phrase extractor (based on NLTK)
# Feel free to use it, just keep a link back to this post
# http://thetokenizer.com/2013/05/09/efficient-way-to-extract-the-main-topics-of-a-sentence/
# Create by Shlomi Babluki
# May, 2013
 
# This is our fast Part of Speech tagger
#############################################################################
brown_train = brown.tagged_sents(categories='news')
regexp_tagger = nltk.RegexpTagger(
    [(r'^-?[0-9]+(.[0-9]+)?$', 'CD'),
     (r'(-|:|;)$', ':'),
     (r'/'*$', 'MD'),
     (r'(The|the|A|a|An|an)$', 'AT'),
     (r'.*able$', 'JJ'),
     (r'^[A-Z].*$', 'NNP'),
     (r'.*ness$', 'NN'),
     (r'.*ly$', 'RB'),
     (r'.*s$', 'NNS'),
     (r'.*ing$', 'VBG'),
     (r'.*ed$', 'VBD'),
     (r'.*', 'NN')
])
unigram_tagger = nltk.UnigramTagger(brown_train, backoff=regexp_tagger)
bigram_tagger = nltk.BigramTagger(brown_train, backoff=unigram_tagger)
#############################################################################
# This is our semi-CFG; Extend it according to your own needs
#############################################################################
cfg = {}
cfg["NNP+NNP"] = "NNP"
cfg["NN+NN"] = "NNI"
cfg["NNI+NN"] = "NNI"
cfg["JJ+JJ"] = "JJ"
cfg["JJ+NN"] = "NNI"
#############################################################################
class NPExtractor(object):
    def __init__(self, sentence):
        self.sentence = sentence
    # Split the sentence into singlw words/tokens
    def tokenize_sentence(self, sentence):
        tokens = nltk.word_tokenize(sentence)
        return tokens
    # Normalize brown corpus' tags ("NN", "NN-PL", "NNS" > "NN")
    def normalize_tags(self, tagged):
        n_tagged = []
        for t in tagged:
            if t[1] == "NP-TL" or t[1] == "NP":
                n_tagged.append((t[0], "NNP"))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黄浦区| 佛山市| 通江县| 呈贡县| 巴林右旗| 从化市| 东台市| 凤山县| 永吉县| 缙云县| 柘荣县| 韶关市| 东安县| 武山县| 贡山| 合阳县| 眉山市| 定陶县| 柳河县| 永清县| 紫金县| 诸暨市| 阿拉善右旗| 洛扎县| 防城港市| 子长县| 秦安县| 平凉市| 香格里拉县| 五河县| 上蔡县| 三门峡市| 日喀则市| 乌拉特后旗| 镇坪县| 会同县| 安龙县| 平谷区| 烟台市| 黔西县| 大厂|