Ⅰ 用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:建议将此问题添加到“机器学习”、“自然语言处理”话题下。