python提取内容关键词的方法
“yalin-shi”通过精心收集,向本站投稿了5篇python提取内容关键词的方法,以下是小编给大家整理后的python提取内容关键词的方法,欢迎大家前来参阅。
篇1:python提取内容关键词的方法
作者:上大王 字体:[增加 减小] 类型:
这篇文章主要介绍了python提取内容关键词的方法,适用于英文关键词的提取,非常具有实用价值,需要的朋友可以参考下
本文实例讲述了python提取内容关键词的方法,分享给大家供大家参考。具体分析如下:
一个非常高效的提取内容关键词的python代码,这段代码只能用于英文文章内容,中文因为要分词,这段代码就无能为力了,不过要加上分词功能,效果和英文是一样的。
代码如下:
# 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
# thetokenizer.com//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”))
continue
if t[1].endswith(“-TL”):
n_tagged.append((t[0], t[1][:-3]))
continue
if t[1].endswith(“S”):
n_tagged.append((t[0], t[1][:-1]))
continue
n_tagged.append((t[0], t[1]))
return n_tagged
# Extract the main topics from the sentence
def extract(self):
tokens = self.tokenize_sentence(self.sentence)
tags = self.normalize_tags(bigram_tagger.tag(tokens))
merge = True
while merge:
merge = False
for x in range(0, len(tags) - 1):
t1 = tags[x]
t2 = tags[x + 1]
key = “%s+%s” % (t1[1], t2[1])
value = cfg.get(key, ‘‘)
if value:
merge = True
tags.pop(x)
tags.pop(x)
match = “%s %s” % (t1[0], t2[0])
pos = value
tags.insert(x, (match, pos))
break
matches = []
for t in tags:
if t[1] == “NNP” or t[1] == “NNI”:
#if t[1] == “NNP” or t[1] == “NNI” or t[1] == “NN”:
matches.append(t[0])
return matches
# Main method, just run “python np_extractor.py”
def main:
sentence = “Swayy is a beautiful new dashboard for discovering and curating online content.”
np_extractor = NPExtractor(sentence)
result = np_extractor.extract()
print “This sentence is about: %s” % “, ”.join(result)
if __name__ == ‘__main__‘:
main()
希望本文所述对大家的Python程序设计有所帮助,
篇2:python提取字典key列表的方法
作者:企鹅不笨 字体:[增加 减小] 类型:转载
具体如下:
这段代码可以把字典的所有key输出为一个数组
d2 = {‘spam‘: 2, ‘ham‘: 1, ‘eggs‘: 3} # make a dictionaryprint d2 # order is scrambledprint d2.keys() # create a new list of my keys
希望本文所述对大家的Python程序设计有所帮助。
篇3:python比较2个xml内容的方法
作者:像风一样的自由 字体:[增加 减小] 类型:
这篇文章主要介绍了python比较2个xml内容的方法,涉及Python操作XML文件的相关技巧,需要的朋友可以参考下
本文实例讲述了python比较2个xml内容的方法,分享给大家供大家参考。具体分析如下:
from xml.etree import ElementTree K=True main_pid = 10000 loop_depth = 0 def compare_xml(left, right, key_info=‘.‘): global loop_depth loop_depth += 1 if loop_depth == 1: print if left.tag != right.tag: print_diff(main_pid, key_info, ‘difftag‘, left.tag, right.tag) return if left.text != right.text: print_diff(main_pid, key_info, ‘difftext‘, left.text, right.text) return leftitems = dict(left.items) rightitems = dict(right.items()) for k,v in leftitems.items(): if k not in rightitems: s = ‘%s/%s‘ % (key_info, left.tag) print_diff(main_pid, s, ‘lostattr‘, k, “”) for k,v in rightitems.items(): if k not in leftitems: s = ‘%s/%s‘ % (key_info, right.tag) print_diff(main_pid, s, ‘extraattr‘, “”, k) leftnodes = left.getchildren() rightnodes = right.getchildren() leftlen = len(leftnodes) rightlen = len(rightnodes) if leftlen != rightlen: s = ‘%s/%s‘ % (key_info, right.tag) print_diff(main_pid, s, ‘difflen‘, leftlen, rightlen) return l = leftlen 调用: if __name__ == ‘__main__‘: s1 = ‘‘‘‘‘<?xml version=“1.0” encoding=“UTF-8”?>\ 希望本文所述对大家的Python程序设计有所帮助, 摘要:一般做网站编辑,都要考虑文章内容关键词的分布情况,在网站推广中,一篇好的文章,内容关键词分布恰当,收录的几率就会大大增加... 摘要:一般做网站编辑,都要考虑文章内容关键词的分布情况,在网站推广中,一篇好的文章,内容关键词分布恰当,收录的几率就会大大增加,下面就来分享一下这方面的知识。 一,文章题目中必须要包含关键词,因为百度给予标题的权重是非常高的,题目中的网站推广关键词次数出现一次就好。 二,文章首段必须出现关键词, 快照的描述通常是截取文章首段,可见文章首段出现关键词是很重要。首段出现1-2次关键词是比较合理的。 三,重要的是结尾,大家都知道百度判断文章是否原创,先抓取开头100字和结尾100字,和已经收录的文章对比,判断雷同性是否过大。所以在结尾段设置关键词,有利于百度的抓取,出现次数也是1-2次。 四,文章中间部分,中间部分比较随意,只要合理的分散开就可以了。一篇500字的文章,关键词出现5次左右就好,不要过分的堆积,以免被百度判断为作弊。 总结:不过作为一个网络编辑,文章关键词固然重要,但最重要的是要以用户体验为宗旨,一个好的网站推广,内容好了,再适当调整关键词就行。 python访问sqlserver示例 Python open读写文件实现脚本 python 控制语句 python计算程序开始到程序结束的运行时间 Python去掉字符串中空格的方法 python函数缺省值与引用学习笔记分享 python原始套接字编程示例分享 Python里隐藏的“禅” 删除目录下相同文件的python代码(逐级优化 python抓取京东价格分析京东商品价格走势 Python入门教程 超详细1小时学会 python 中文乱码问题深入分析 比较详细Python正则表达式操作指 Python字符串的encode与decode研 Python open读写文件实现脚本 Python enumerate遍历数组示例应 Python 深入理解yield Python+Django在windows下的开发 python 文件和路径操作函数小结 python 字符串split的用法分享 【python提取内容关键词的方法】相关文章: 7.记忆提取观后感 8.提取档案介绍信篇4:网站内容关键词的分布方法
篇5:python 七种邮件内容发送方法实例
最近更 新
热 点 排 行






文档为doc格式