做網(wǎng)站的時候賣過假貨而出過事搜索引擎優(yōu)化是免費的嗎
1 前言
jieba
是一個非常流行的中文分詞庫,具有高效、準確分詞的效果。
它支持3種分詞模式:
- 精確模式
- 全模式
- 搜索引擎模式
jieba==0.42.1
測試環(huán)境:python3.10.9
2 三種模式
2.1 精確模式
適應場景:文本分析。
功能:可以將句子精確的分開。
import jiebatext = "有勇氣的牛排是一個編程領域博主的名字"
segments = jieba.lcut(text)print("精確模式分詞結果:", segments)
# ['有', '勇氣', '的', '牛排', '是', '一個', '編程', '領域', '博主', '的', '名字']
2.2 全模式
適應場景:提取詞語。
功能:可以將句子中的成詞的詞語掃描出來,速度非???#xff0c;但不能解決歧義問題。
import jiebatext = "有勇氣的牛排是一個編程領域博主的名字"segments = jieba.lcut(text, cut_all=True)
print("全模式分詞結果:", segments)
# ['有', '勇氣', '的', '牛排', '是', '一個', '編程', '領域', '博', '主', '的', '名字']
2.3 搜索引擎模式
適應場景:搜索分詞。
功能:在精確模式的基礎上,對長分詞進行切分,提高召回率。
import jiebatext = "有勇氣的牛排是一個編程領域博主的名字"segments = jieba.lcut_for_search(text)
print("搜索引擎模式分詞結果:", segments)
3 自定義詞典
jieba
允許用戶自定義詞典,以提高分詞的準確性。
比如專業(yè)術語、名字、網(wǎng)絡新流行詞匯、方言、以及其他不常見短語名字等。
3.1 添加單個詞語
import jiebatext = "有勇氣的牛排是一個編程領域博主的名字"jieba.add_word("有勇氣的牛排")
segments = jieba.lcut_for_search(text)
print("搜索引擎模式分詞結果:", segments)
# ['勇氣', '牛排', '有勇氣的牛排', '是', '一個', '編程', '領域', '博主', '的', '名字']
3.2 添加詞典文件
cs_dict.txt
有勇氣的牛排
編程領域
main.py
import jiebatext = "有勇氣的牛排是一個編程領域博主的名字"jieba.load_userdict("cs_dict.txt")segments = jieba.lcut(text)
print("自定義詞典文件分詞結果:", segments)
# ['有勇氣的牛排', '是', '一個', '編程領域', '博主', '的', '名字']
4 詞性標注
jieba
的詞性標注(POS tagging)功能使用了標注詞性(Part-of-Speech tags)來表示每個詞的詞性。
4.1 詞性對照表
原文地址:https://www.couragesteak.com/article/454
a 形容詞 ad 副形詞
ag 形容詞性語素 an 名形詞
b 區(qū)別詞 c 連詞
d 副詞 dg 副語素
e 嘆詞 f 方位詞
g 語素 h 前綴
i 成語 j 簡稱略語
k 后綴 l 習用語
m 數(shù)詞 mg 數(shù)語素
mq 數(shù)量詞 n 名詞
ng 名語素 nr 人名
ns 地名 nt 機構團體
nz 其他專名 o 擬聲詞
p 介詞 q 量詞
r 代詞 rg 代詞性語素
s 處所詞 t 時間詞
tg 時間詞性語素 u 助詞
vg 動語素 v 動詞
vd 副動詞 vn 名動詞
w 標點符號 x 非語素字
y 語氣詞 z 狀態(tài)詞
4.2 測試案例
import jieba.posseg as psegtext = "有勇氣的牛排是一個編程領域博主的名字"words = pseg.cut(text)
for word, flag in words:print(f"{word} - {flag}")
5 關鍵詞提取
from jieba import analyse
text = "有勇氣的牛排是一個編程領域博主的名字"# 取前5個關鍵詞
keywords = analyse.extract_tags(text, topK=5)
print("關鍵詞提取結果:", keywords)
6 詞頻統(tǒng)計
import jieba
from collections import Counter
text = "有勇氣的牛排是一個編程領域博主的名字"# 取前5個關鍵詞
segments = jieba.lcut(text)
word_counts = Counter(segments)
print("詞頻統(tǒng)計結果:", word_counts)