0x00 Preface
I can't find anything to write! Today, a Tanzhou, a lecturer in Daniel, said a text frequency analysis
I basically copied it all over again.
In the middle encounter some small problems self-Baidu pits complete the following:
Effect Demo
0X01 Preparation Environment and introduction
python3.x version Free
Installing the Jieba Library
Pip Install Jieba
Jieba of three modes:
1. Precision mode lcut function, return a word list
2. Full mode
3. Search engine mode
Frequency:
< word >:< occurrences > key-value pairs
IPO Description Imput Output process
Input: Read the contents of kingdoms from a file
Processing: Using Jiedb for Word segmentation, dictionary data structure Statistics The frequency of the occurrence of words
Output: Most of the first 10 words appear in the article
Code:
First step: Read the file
Step Two: Participle
Step Three: Statistics
Fourth Step: Sort
the introduction is complete! Then enter the actual combat it! 0x02 Combat
The complete code is as follows:
1 ImportJieba2 3Content = Open ('Kingdoms. txt','R', encoding='Utf-8'). Read ()4Words =jieba.lcut (content)#participle5excludes={"General","but said","Two people","The aorta","Horse","Don't know","The Emperor","shouting","the public will","not be","My Lord","Shu Bing","saw","How to","deliberations","Viceroy","a person","Hanzhong","Dare not","centaurs","Your Majesty","Wei Bing","World","Today","around","Dong Wu","so","Jingzhou","can't","so","exultation","Lead Soldiers","Next day","Sergeant","Military Horse"}#excluded Words6words=jieba.lcut (content)7counts={}8 9 forWordinchwords:Ten ifLen (Word) = = 1:#exclude single-character participle results One Continue A elifWord = ='Hung Ming' orWord = ='Ming Yue': -Real_word ='Hung Ming' - elifWord = ='Kuan Kung' orWord = ='Cloud Length': theReal_word ='Guan Yu' - elifWord = ='Mengde' orWord = ='Prime Minister': -Real_word ='Caocao' - elifWord = ='Hyun Tak' orWord = ='Xuan de Yue': +Real_word ='Liu Bei' - Else: +Real_word =Word ACounts[word] = counts.get (Word, 0) + 1 at - - - forWordinchexcludes: - del(Counts[word]) -items=list (Counts.items ()) inItems.Sort (key=LambdaX:x[1],reverse=True) - forIinchRange (10): toWord,count=Items[i] + Print("{0:<10}{1:>5}". Format (Word,count))
0x03 Precautions
① encountered in the course of execution: ' GBK ' codec can ' t decode byte 0x82 in position 20:illegal multibyte sequence coding error: Content = Open ("C:\\user S\\geek\\desktop\\python.txt "," R ", encoding= ' Utf-8 ')
Here is the TXT file i downloaded "kingdoms" is ASCII, how to do it! After the search learned that to normal operation will have to change the TXT encoding to UTF-8 form to run successfully, how to do it!
First: Open txt text → file → Save As → encode →utf-8→ determine the completion of the first pit. Here we go! With the above code you succeeded, but I met far more than 2, so I'm going to write it together.
② Pit ②, here it is! He is in the online lecture ah, no txt kingdoms file how to do it! There's no way to find a kingdoms. Text attached: http://vdisk.weibo.com/s/AfY-rVkr38Gg
③ download Good later can be happy to play, but I have to say but, to ask me why? Allow me one by one! 15 word groups too many will appear! I
after the run will appear a lot of irrelevant words, line, no way can only clean, but I clean most still have, really no way, this for practiced hand to use so I dropped to 10 phrases, good, then want to complete the name of the phrase? There is an increase in the number of words that need to be excluded, so this is the end of the play.
0x04 Curtain Call
Finish
Python Example: Kingdoms txt text word frequency analysis