A. python统计个单词数目

楼上的程序存在诸多问题,如没有处理标点,文件读取方法错误等。

请问楼主要区分大小写吗?如果区分的话,就按照下面的来:
import re

def get_word_frequencies(file_name):
dic = {}
txt = open(filename, 'r').read().splitlines()
#下面这句替换了除了'-'外的所有标点,因为'-'可能存在于单词中。
txt = re.sub(r'[^\u4e00-\u94a5\w\d\-]', ' ', txt)
#替换单独的'-'
txt = re.sub(r' - ', ' ', txt)
for line in :
for word in line.split():
#如果不区分大小写,那就一律按照小写处理,下面那句改为dic.setdefault(word.lower(), 0)
dic.setdefault(word, 0)
dic[word] += 1
print dic

if __name__ = '__main__':
get_word_frequencies('test.txt')

有问题继续追问吧

B. Python中,已经得到一个包含所有单词的词典,如何统计词典中的单词在每一句话中出现的次数

众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。例如,英文句子I am a student,用中文则为:“我是一个学生”。计算机可以很简单通过空格知道student是一个单词,但是不能很容易明白“学”、“生”两个字合起来才表示一个词。把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。我是一个学生,分词的结果是:我 是 一个 学生。
中文分词技术属于自然语言处理技术范畴,对于一句话,人可以通过自己的知识来明白哪些是词,哪些不是词,但如何让计算机也能理解?其处理过程就是分词算法。

现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。

1、基于字符串匹配的分词方法

这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:

1)正向最大匹配法(由左到右的方向);

2)逆向最大匹配法(由右到左的方向);

3)最少切分(使每一句中切出的词数最小)。

还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。

一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。另一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。

对于机械分词方法,可以建立一个一般的模型,在这方面有专业的学术论文,这里不做详细论述。

2、基于理解的分词方法

这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。

3、基于统计的分词方法

从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。定义两个字的互现信息,计算两个汉字X、Y的相邻共现概率。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法。但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“这一”、“之一”、“有的”、“我的”、“许多的”等,并且对常用词的识别精度差,时空开销大。实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。

到底哪种分词算法的准确度更高,目前并无定论。对于任何一个成熟的分词系统来说,不可能单独依靠某一种算法来实现,都需要综合不同的算法。笔者了解,海量科技的分词算法就采用“复方分词法”,所谓复方,相当于用中药中的复方概念,即用不同的药才综合起来去医治疾病,同样,对于中文词的识别,需要多种算法来处理不同的问题。

C. python基础问题,取单词缩写

继续追问: 教程是说编写一个传统的Hello World的程序,然后使用源文件,用编译器编写出这个源文件,也就是问题的第一幅图。然后教程说PYTHON里,打入 $python helloworld.py (helloworld.py是这个源文件的名字)然后输出是 Hello World ,那现在我输出不对,是怎么回事。我的电脑系统是windows XP,编译器是python里的IDLE,python的版本为3.2 。求你告诉我是怎么回事。\r\n第一个回答说的很清楚了,python的IDLE是交互式命令行的,你把文件写好了以后,开始-》运行cmd 然后在出来的终端窗口里进入你的py文件所在目录 然后直接输入python helloworld.py 就可以了, 或者直接输入helloworld.py也可以\r\n追问:\r\n但是,输入后,这个文件一下子又消失了。\r\n回答:\r\n什么叫文件消失了啊。。。 你又没删除它,它怎么会消失呢。。首先:你的那文里第一行是针对linux系统的,既然你用的是windows,就把它删掉,第二行是注释,也不用要。其次:你电脑上装的Python 3.2版,而你的教材显然是针对2.x的,3.2的Python里print用法: print("hello")\r\n追问:\r\n消失就是打开了这个文件,这个文件的界面一出现,不到1秒又不见了。\r\n回答:\r\n明白了,你是双击打开的吧...\r\n追问:\r\n是啊,我要怎么做啊\r\n回答:\r\n开始->运行->cmd 然后在那个黑屏里把当前路径切换到你py文件那个目录,输入python hello.py回车 就行了啊\r\n大家没说让你双击那个python文件吧\r\n追问:\r\n按照你这个方法也没用啊,他闪了一下就不见了。\r\n回答:\r\n那我也帮不了你了,我最后跟你说一下我的步骤吧:我在D盘的test文件夹里新建了一个helloworld.py的文件,内容就是print "helloworld",然后运行CMD,CMD里输入的命令和结果见附图,整个过程就这样了。我也不知道你的是什么问题。\r\n

D. python单词如何读

python的读音及注解如下:
(推荐教程:python基础教程)
python 英 [?pa?θ?n] 美 [?pa?θɑ?n]
n. 蟒; 蟒蛇;
[例句]On my system, it's at/ usr/ bin/ python.
[其他] 复数:pythons
python是一门面向对象的编程语言。python本身的意思是蟒蛇,巨蟒,至于为什么叫pthon,这里还是有缘由的。
Python的创始人为荷兰人吉多·范罗苏姆 (Guido van Rossum)。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提.派森干的飞行马戏团》(Monty Python's Flying Circus)。
ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是其非开放造成的。Guido 决心在Python 中避免这一错误。同时,他还想实现在ABC 中闪现过但未曾实现的东西。
就这样,Python在Guido手中诞生了。可以说,Python是从ABC发展起来,主要受到了Mola-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。
相关推荐:python爬虫视频教程

E. python需要记住哪几十个单词

楼上的程序存在诸多问题,如没有处理标点,文件读取方法错误等。请问楼主要区分大内小写吗?如果区分的容话,就按照下面的来: import re def get_word_frequencies(file_name): dic = {} txt = open(filename, 'r').read().splitlines() #下面这句替换了除了'-'外的所有标点,因为'-'可能存在于单词中。 txt = re.sub(r'[^\u4e00-\u94a5\w\d\-]', ' ', txt) #替换单独的'-' txt = re.sub(r' - ', ' ', txt) for line in : for word in line.split(): #如果不区分大小写,那就一律按照小写处理,下面那句改为dic.setdefault(word.lower(), 0) dic.setdefault(word, 0) dic[word] += 1 print dic if __name__ = '__main__': get_word_frequencies('test.txt') 有问题继续追问吧

F. 不会英语,可以学Python吗

可以学习的,只不过学习起来要比别人更加努力才行,毕竟基础相对于差一点。同时还需要选择一家合适的机构,培训机构教育的好,学习的内容更好,推荐你去老男孩。

G. 学python 用什么背单词



其实python非常适合初学者入门。相比较其他不少主流编程语言,有更好的可读性,因此上手相对容易。自带的各种模块加上丰富的第三方模块,免去了很多“重复造轮子”的工作,可以更快地写出东西。配置开发环境也不是很复杂,mac和linux都内置了python。另外据我所知,不少学校也开始使用python来教授程序设计课程(比如本人的母校)。

我就是完全通过网上资源自学python的。
从在校时候用python接活赚零花钱,到在创业公司用python开发商业网站和游戏后台。所有遇到的问题,几乎都可以从互联网上的公开资源找到答案。

关于自学python,个人最大的3点经验:

  • 找一本浅显易懂,例程比较好的教程,从头到尾看下去。不要看很多本,专注于一本。把里面的例程都手打一遍,搞懂为什么。我当时看的是《简明python教程》,不过这本书不是非常适合零基础初学者。

  • 去找一个实际项目练手。我当时是因为要做一个网站,不得已要学python。这种条件下的效果比你平时学一门新语言要好很多。所以最好是要有真实的项目做。可以找几个同学一起做个网站之类。注意,真实项目不一定非要是商业项目,你写一个只是自己会用的博客网站也是真实项目,关键是要核心功能完整。

  • 最好能找到一个已经会python的人。问他一点学习规划的建议(上知乎也是个途径),然后在遇到卡壳的地方找他指点。这样会事半功倍。但是,要学会搜索,学会如何更好地提问。没人愿意帮你写作业或是回答“一搜便知”的问题。

H. 利用Python列出最频繁的单词和它们的出现次数

Python2.7上测试通过

importurllib2
importre
fromcollectionsimportCounter
defget_data(url):
resp=urllib2.urlopen(url).read().lower()
returnresp
defanalyse(text,n=1):
'''showthenmostcommonwordsintext'''
res=Counter(re.split(r'W+',text,flags=re.M)).most_common(n)
print('words times')
print(' '.join([k+' '+str(v)fork,vinres]))
defmain():
data=get_data('http://www.umich.e/~umfandsf/other/ebooks/alice30.txt')
analyse(data,10)
main()

结果是

words times

the 1642

and 872

to 729

a 632

it 595

she 553

i 543

of 514

said 462

you 411