search
HomeBackend DevelopmentPython TutorialUsing python for Chinese word segmentation

At present, the participles I often use include stuttering participles, NLPIR participles, etc.

I have been using stuttering participles recently. I made some recommendations and it is quite easy to use.

1. Introduction to stuttering word segmentation

Using stuttering word segmentation for Chinese word segmentation, there are three basic implementation principles:

Efficient word graph scanning is implemented based on the Trie tree structure, and a directed acyclic composed of all possible word formations of Chinese characters in the sentence is generated Figure (DAG)

Dynamic programming is used to find the maximum probability path and the maximum segmentation combination based on word frequency

For unregistered words, an HMM model based on the word-forming ability of Chinese characters is used, and the Viterbi algorithm is used

2. Installation and use (Linux)

1. Download the tool package, unzip it and enter the directory, run: python setup.py install

Hint: a. A good habit is to read the readme of the downloaded software first, and then Perform operations. (If you don’t read the readme, try + Baidu directly, you will take many detours);

  b. When running the installation command, an error occurred: no permission! (Some people may encounter this problem because of insufficient permissions. Execution: sudo !! where "!!" means the previous command, here refers to the installation command above), it can run normally after using sudo.


2. When using Jieba for word segmentation, the function you will definitely use is: jieba.cut(arg1, arg2); this is a function for word segmentation. We only need to understand the following three points before you can use it.

 The a.cut method accepts two input parameters: the first parameter (arg1) is the string that needs to be segmented, and the arg2 parameter is used to control the word segmentation mode.

  The word segmentation mode is divided into two categories: the default mode, which attempts to cut the sentence into the most accurate form, suitable for text analysis; the full mode, which scans out all the words in the sentence that can be formed into words, suitable for search engines

b. To be waited for The string of word segmentation can be a gbk string, a utf-8 string or a unicode

People who use Python should pay attention to encoding issues. Python processes characters based on ASCII codes. When characters that do not belong to ASCII appear (such as in the code (using Chinese characters in ), an error message will appear: "ASCII codec can't encode character". The solution is to add a statement at the top of the file: #! -*- coding:utf-8 -*- to tell the Python compiler: " My file is encoded using utf-8. When you want to decode, please use utf-8". (Remember here, this command must be added at the top of the file. If it is not at the top, the encoding problem will still exist and will not be solved.) Regarding encoding conversion, you can refer to the blog post (ps: Personal understanding of "import sys reload( sys) sys.setdefaultencoding('utf-8')" These sentences are equivalent to "#! -*- coding:utf-8 -*- ")

The structure returned by c.jieba.cut is an iterable generator, you can use a for loop to get each word (unicode) obtained after word segmentation, or you can use list (jieba.cut(...)) to convert it into a list

3. The following is an example of how to use it in jieba As a description:

#! -*- coding:utf-8 -*-
import jieba
seg_list = jieba.cut("我来到北京清华大学", cut_all = True)
print "Full Mode:", ' '.join(seg_list)
  
seg_list = jieba.cut("我来到北京清华大学")
print "Default Mode:", ' '.join(seg_list)

The output result is:

Full Mode: 我/ 来/ 来到/ 到/ 北/ 北京/ 京/ 清/ 清华/ 清华大学/ 华/ 华大/ 大/ 大学/ 学  
Default Mode: 我/ 来到/ 北京/ 清华大学

3. Other functions of stuttering Chinese word segmentation

1. Add or manage a custom dictionary

All dictionary contents of stuttering are stored in dict. txt, you can continuously improve the content in dict.txt.

2. Keyword extraction

Extract key keywords by calculating the TF/IDF weight of the keywords after word segmentation.


Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Python vs. C  : Understanding the Key DifferencesPython vs. C : Understanding the Key DifferencesApr 21, 2025 am 12:18 AM

Python and C each have their own advantages, and the choice should be based on project requirements. 1) Python is suitable for rapid development and data processing due to its concise syntax and dynamic typing. 2)C is suitable for high performance and system programming due to its static typing and manual memory management.

Python vs. C  : Which Language to Choose for Your Project?Python vs. C : Which Language to Choose for Your Project?Apr 21, 2025 am 12:17 AM

Choosing Python or C depends on project requirements: 1) If you need rapid development, data processing and prototype design, choose Python; 2) If you need high performance, low latency and close hardware control, choose C.

Reaching Your Python Goals: The Power of 2 Hours DailyReaching Your Python Goals: The Power of 2 Hours DailyApr 20, 2025 am 12:21 AM

By investing 2 hours of Python learning every day, you can effectively improve your programming skills. 1. Learn new knowledge: read documents or watch tutorials. 2. Practice: Write code and complete exercises. 3. Review: Consolidate the content you have learned. 4. Project practice: Apply what you have learned in actual projects. Such a structured learning plan can help you systematically master Python and achieve career goals.

Maximizing 2 Hours: Effective Python Learning StrategiesMaximizing 2 Hours: Effective Python Learning StrategiesApr 20, 2025 am 12:20 AM

Methods to learn Python efficiently within two hours include: 1. Review the basic knowledge and ensure that you are familiar with Python installation and basic syntax; 2. Understand the core concepts of Python, such as variables, lists, functions, etc.; 3. Master basic and advanced usage by using examples; 4. Learn common errors and debugging techniques; 5. Apply performance optimization and best practices, such as using list comprehensions and following the PEP8 style guide.

Choosing Between Python and C  : The Right Language for YouChoosing Between Python and C : The Right Language for YouApr 20, 2025 am 12:20 AM

Python is suitable for beginners and data science, and C is suitable for system programming and game development. 1. Python is simple and easy to use, suitable for data science and web development. 2.C provides high performance and control, suitable for game development and system programming. The choice should be based on project needs and personal interests.

Python vs. C  : A Comparative Analysis of Programming LanguagesPython vs. C : A Comparative Analysis of Programming LanguagesApr 20, 2025 am 12:14 AM

Python is more suitable for data science and rapid development, while C is more suitable for high performance and system programming. 1. Python syntax is concise and easy to learn, suitable for data processing and scientific computing. 2.C has complex syntax but excellent performance and is often used in game development and system programming.

2 Hours a Day: The Potential of Python Learning2 Hours a Day: The Potential of Python LearningApr 20, 2025 am 12:14 AM

It is feasible to invest two hours a day to learn Python. 1. Learn new knowledge: Learn new concepts in one hour, such as lists and dictionaries. 2. Practice and exercises: Use one hour to perform programming exercises, such as writing small programs. Through reasonable planning and perseverance, you can master the core concepts of Python in a short time.

Python vs. C  : Learning Curves and Ease of UsePython vs. C : Learning Curves and Ease of UseApr 19, 2025 am 12:20 AM

Python is easier to learn and use, while C is more powerful but complex. 1. Python syntax is concise and suitable for beginners. Dynamic typing and automatic memory management make it easy to use, but may cause runtime errors. 2.C provides low-level control and advanced features, suitable for high-performance applications, but has a high learning threshold and requires manual memory and type safety management.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools