Date: Jun. 2nd, 2019
Lecturer: Chia
$ pip install jieba
import jieba
content = 'Jieba中文斷詞所使用的演算法是基於Trie Tree\
結構去生成句子中中文字所有可能成詞的情況,\
再使用動態規劃演算法來找出最大機率的路徑,\
這個路徑就是基於詞頻的最大斷詞結果。\
對於辨識新詞(字典詞庫中不存在的詞)則使用HMM模型及Viterbi演算法來辨識。'
# 讀取文本內容
# content = open('corpus.txt', 'r', encoding = 'utf-8').read()
wordlist_after_jieba = jieba.cut(content, cut_all = False)
wl_space_split = "\\".join(wordlist_after_jieba)
print(wl_space_split)
import jieba
s = jieba.cut("Jieba中文斷詞所使用的演算法為何?", cut_all = ___)
print("【___模式】", "/ ".join(s))
#【全模式】 Jieba/ 中文/ 斷/ 詞/ 所/ 使用/ 的/ 演算/ 演算法/ 算法/ 為/ 何/ ?
#【精確模式】 Jieba/ 中文/ 斷詞/ 所/ 使用/ 的/ 演算法/ 為何/ ?
精確地切開句子,適合文本分析。
全模式(True)
把句子中所有可以成詞的都掃描出來。
cut_all (分詞模式)
$ python
Python 3.7.0 (Jun 27 2018) [MSC v.1914 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ pip install C:\Users\pcsh1\Downloads\wordcloud-1.5.0-cp37-cp37m-win32.whl
$ pip install C:\Users\pcsh1\Downloads\imread-0.7.1-cp37-cp37m-win32.whl
from wordcloud import WordCloud, STOPWORDS
chi_font = 'NotoSerifCJKtc-SemiBold.otf' #中文字型
wordcloud = WordCloud(font_path=chi_font, background_color="black", \
width=1000, height=860, max_words=100, \
stopwords=STOPWORDS.add("使用")).generate(wl_space_split)
# font_path: 若為中文,則需引入中文字型(.TTF)
# max_words: 最大分詞數量
# stopwords: 停用詞
生成文字雲
import matplotlib.pyplot as plt
plt.imshow(wordcloud) #繪製圖片
plt.axis("off") #不顯示尺規座標
plt.show() #顯示圖片
wordcloud.to_file('testpic.png')
顯示文字雲圖片
自動存成圖片檔
import jieba
from wordcloud import WordCloud, STOPWORDS
from imread import imread
# 讀取文本內容
content = open('corpus.txt', 'r', encoding = 'utf-8').read()
wordlist_after_jieba = jieba.cut(content, cut_all = False)
wl_space_split = "\\".join(wordlist_after_jieba)
chi_font = 'NotoSerifCJKtc-SemiBold.otf' #中文字型
wordcloud = WordCloud(font_path=chi_font, background_color = "white", \
width=300, height=250, max_words=500, \
mask=imread('cat.png')).generate(wl_space_split)
wordcloud.to_file('testpic.png')
更換背景圖片遮罩
from ckiptagger import WS
from wordcloud import WordCloud, STOPWORDS
from imread import imread
data_utils.download_data_gdown("./")
ws = WS("./data")
content = [open('corpus.txt', 'r', encoding = 'utf-8').read()]
word_sentence_list = ws(content)
print(word_sentence_list)
wl_space_split = "\\".join(word_sentence_list[0])
chi_font = 'NotoSerifCJKtc-SemiBold.otf' #中文字型
wordcloud = WordCloud(font_path=chi_font, background_color = "yellow", \
width=300, height=250, max_words=500, \
mask=imread('cat.png')).generate(wl_space_split)
wordcloud.to_file('testpic.png')
補充:使用 ckiptagger 斷詞