导航:首页 > 编程语言 > python如何实现高频词检索

python如何实现高频词检索

发布时间:2022-11-04 20:42:27

Ⅰ 用python实现搜索某一网页中出现频率最高的前N个英文单词 输入: 网址,N值 输出:按出现频率由高到低排

好象是有一个jieba分词。国人写的,有一个小男孩的头像。挺简单,好玩。

它里有topN的算法。我把代码复制过来。你看一下。最关键的就一句话。

import sys
sys.path.append('../')

import jieba
import jieba.analyse
from optparse import OptionParser

USAGE ="usage: python extract_tags.py [file name] -k [top k]"

parser = OptionParser(USAGE)
parser.add_option("-k",dest="topK")
opt, args = parser.parse_args()

if len(args) <1:
print USAGE
#sys.exit(1)

file_name = args[0]

if opt.topK==None:
topK=10
else:
topK = int(opt.topK)

print file_name
content = open(file_name,'rb').read()
tags = jieba.analyse.extract_tags(content,topK=topK) #这一句
print ",".join(tags)

如果是英文单词就更简单了。可能几句话。我试一下看
s=open("some.txt").read()
import re
words=re.findall("(?isu)(\S+)",s)
counts={}
for w in words:
try:
counts[w]+=1
except KeyError:
counts[w]=1
items=count.items()
items.sort(key=lambda x:x[1],reverse=True)
for k,v in items:
print k,v
这样应该就可以了。

Ⅱ python中如何分析这是一本关于什么的文档

最基本的就是做分词后取最高频词。

作为优化,可以从词性角度排除一些高频词,如高频词“的”之类的。
如果还想进一步优化,就需要使用大数据了,建立一个词相关性评分表,对文档分词后的词频与这相应的相关度做加权,选取加权最高的一组词或几组词为文档的索引词表。
然后从文档中提取整句与提取的索引词表履盖度最高的若干句作为文档的摘要。
大部分的摘要算法就是按这个思路来完成的。

Ⅲ 用Python实现小说里的高频词统计并显示

用jieba做分词,用wordcloud包做词云就可以了

#读取文件内容
file='d:/艾萨克·阿西莫夫/奇妙的航程.TXT'
f=open(file,'r',encoding='gbk')
text=f.read()
f.close()
#使用jieba分词,因为wordcloud是以空格识别单词边界的
importjieba
text=''.join(jieba.cut(text))
#掩码图片,单色图就好
fromscipy.miscimportimread
color_mask=imread('D:/Pictures/7218.png')
#建立词云对象,因为是中文,指定一个中文字体,不然可能会乱码
#WordCloud的参数可以控制很多内容,请自行阅读包的文档
importwordcloud
w=wordcloud.WordCloud(font_path='C:/Windows/Fonts/msyh.ttc',
max_words=100,
mask=color_mask)
#载入以空格分词的字符串
w.generate(text)
#生成图片
w.to_file('d:/img1.png')

Ⅳ python如何高级检索

$ python _qa.py

Enter Context, leave by empty line

def __init__(self, datafile, default=None):

self.datafile = datafile

self.default = default

self.data = shelve.BsdDbShelf(bsddb.open(self.datafile, 'c'))

def __del__(self):

self.data.sync()

self.data.close()

def __getitem__(self, k):

return self.data.get(k, self.default)

def __setitem__(self, k, v):

self.data[k] = v


Enter and/or keywords to query

and default data

[9]

or get k v

[8, 9, 10, 11]

$

#coding:utf-8

importre

patt=re.compile("w+")

defmakeIndex():
index,lineno={},0
whileTrue:
ln=raw_input()
ifln:
lineno+=1
forwordinpatt.findall(ln):
index.setdefault(word,[]).append(lineno)
else:
break
returnindex

defindexAndQuery(index,*args):
found=None
forwordinargs:
got=index.get(word,[])
ifnotgot:
returnNone
ifnotfound:
found=set(got)
else:
found&=set(got)
ifnotfound:
returnNone
returnlist(found)

defindexOrQuery(index,*args):
found=set()
forwordinargs:
found|=set(index.get(word,[]))
returnlist(found)

deflnparser(ln):
words=patt.findall(ln.lower())
iflen(words)<2orwords[0]notin('and','or'):
#输入的行不是以and,or开始,或未给出待查单词
returnNone
else:
returnwords[0],words[1:]

cmdswitch={
'and':indexAndQuery,
'or':indexOrQuery,
}

print"EnterContext,leavebyemptyline"
index=makeIndex()
print"Enterand/orkeywordstoquery"
whileTrue:
got=lnparser(raw_input())
ifnotgot:
break
printcmdswitch[got[0]](index,*got[1])

Ⅳ python 提取有关键词的句子怎么做

高频词提取:
# !/usr/bin/python3
# coding:utf-8

import jieba.analyse

jieba.load_userdict('dict.txt') # dict.txt自定义词典

content = open('kw.txt', 'rb').read()
tags = jieba.analyse.extract_tags(content, topK=10) # topK 为高频词数量
print("\n".join(tags))

Ⅵ python分词如何实现新词识别

你这首先肯定要把文章所有词语挖掉,挖掉又涉及到词的长度范围啊,词并不总是由2个汉字组成.对不.
编程没有什么难度,要频率就设定一个变量记录,要词库就设定一个列表.
关键是数值怎么定.数值呢?
问得太简单了,只能这么答.

Ⅶ 如何用Python实现在文件夹下查找一个关键词

#!/usr/bin/python
#coding:utf8
import os

#判断文件中是否包含关键字,是则将文件路径打印出来
def is_file_contain_word(file_list, query_word):
for _file in file_list:
if query_word in open(_file).read():
print _file
print("Finish searching.")

#返回指定目录的所有文件(包含子目录的文件)
def get_all_file(floder_path):
file_list = []
if floder_path is None:
raise Exception("floder_path is None")
for dirpath, dirnames, filenames in os.walk(floder_path):
for name in filenames:
file_list.append(dirpath + '\\' + name)
return file_list

query_word = raw_input("Please input the key word that you want to search:")
basedir = raw_input("Please input the directory:")

is_file_contain_word(get_all_file(basedir), query_word)
raw_input("Press Enter to quit.")

请采纳

Ⅷ 如何用python代码实现筛选

用python代码实现筛选的方法:

python中的if语句可以实现筛选的效果。例如:筛选出列表里的数字就可以用“if type(i) == int”语句来筛选

示例代码如下:

执行结果如下:

更多Python知识,请关注:Python自学网!!

Ⅸ 如何用python实现英文短文的双词频统计

data="""Doyouhearthepeoplesing,singingasongofangrymen.Itisthemusicofapeople,whowillnotbeslavesagain,.."""
data=data.replace(',','')
data=data.replace('.','')
ws=data.split()
dic={}#counttwowords
ws2=[]#twowords
foriinrange(len(ws)-1):
ws2.append(ws[i]+""+ws[i+1])
forw2inws2:
ifdic.get(w2)==None:
dic[w2]=1
else:
dic[w2]+=1
dic_first={}#counttwowordsbyfirstword
forw2inws2:
(l,r)=w2.split()
ifdic_first.get(l)==None:
dic_first[l]=1
else:
dic_first[l]+=1
forw2inws2:#output
(l,r)=w2.split()
printw2,dic[w2],dic_first[l],dic[w2]/float(dic_first[l])

Ⅹ 用python怎样从语句中分析人们讨论的热点

简单一点的方法:分词-->去除停用词-->统计高频词汇
稍微复杂一点的方法:分词-->去除停用词-->LDA主题模型训练-->言论主题分类并得到主题词
更复杂一点的方法:在上一个方法的基础上,添加“情绪识别”、“实体识别”等。
PS:建议将此问题添加到“机器学习”、“自然语言处理”话题下。

阅读全文

与python如何实现高频词检索相关的资料

热点内容
微盟程序员老婆 浏览:928
intellij创建java 浏览:110
java连接odbc 浏览:38
启动修复无法修复电脑命令提示符 浏览:359
手机编程是什么 浏览:97
山东移动程序员 浏览:163
苏州java程序员培训学校 浏览:476
单片机液晶驱动 浏览:854
魔拆app里能拆到什么 浏览:130
新预算法的立法理念 浏览:144
wdcpphp的路径 浏览:134
单片机p0口电阻 浏览:926
浏览器中调短信文件夹 浏览:594
五菱宏光空调压缩机 浏览:68
为什么app占用几百兆 浏览:680
自动解压失败叫我联系客服 浏览:484
易语言新手源码 浏览:456
oa服务器必须有固定ip地址 浏览:45
传奇源码分析是什么 浏览:269
解放压缩机支架 浏览:255