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