有什么「英文分詞」工具,能做類似于「中文分詞」的操作。分出的是「詞組」而不單單是根據英文「空格」分開。
比如以下使用的是斯坦福 Stanza 的中文分詞:
# 安裝 stanza
!pip3 install stanza
# 匯入 package
import stanza
# 下載英語模型
print("Downloading English model...")
stanza.download('en')
# 下載中文模型
print("Downloading Chinese model...")
stanza.download('zh', verbose=False)
# 待處理的中文
text = """英國首相約翰遜6日晚因病情惡化,被轉入重癥監護室治療。英國首相府發言人說,目前約翰遜意識清晰,將他轉移到重癥監護室只是預防性措施。發言人說,約翰遜被轉移到重癥監護室前已安排英國外交大臣拉布代表他處理有關事務。"""
zh_nlp = stanza.Pipeline('zh')
doc = zh_nlp(text)
# 回圈輸出結果
for sent in doc.sentences:
print("Sentence:" + sent.text) # 斷句
print("Tokenize:" + ' '.join(token.text for token in sent.tokens)) # 中文分詞
輸出結果為:
Sentence:英國首相約翰遜6日晚因病情惡化,被轉入重癥監護室治療。
Tokenize:英國/首相/約翰遜/6/日/晚因/病情/惡化 , 被/轉入/重癥/監護/室/治療 。
Sentence:英國首相府發言人說,目前約翰遜意識清晰,將他轉移到重癥監護室只是預防性措施。
Tokenize:英國/首相/府/發言/人/說/,/目前/約翰遜/意識/清晰 , 將/他/轉移/到/重癥/監護/室/只/是/預防/性/措施 。
Sentence:發言人說,約翰遜被轉移到重癥監護室前已安排英國外交大臣拉布代表他處理有關事務。
Tokenize:發言/人/說 , 約翰遜/被/轉移/到/重癥/監護/室/前/已/安排/英國/外交/大臣/拉布/代表/他/處理/有關/事務 。
如果輸入的是英文,都是按照空格分開的。
import stanza
nlp = stanza.Pipeline(lang='en', processors='tokenize')
doc = nlp('This is a test sentence for stanza. This is United States.')
for i, sentence in enumerate(doc.sentences):
print(f'====== Sentence {i+1} tokens =======')
print(*[f'id: {token.id}\ttext: {token.text}' for token in sentence.tokens], sep='\n')
輸出結果:
====== Sentence 1 tokens =======
id: (1,) text: This
id: (2,) text: is
id: (3,) text: a
id: (4,) text: test
id: (5,) text: sentence
id: (6,) text: for
id: (7,) text: stanza
id: (8,) text: .
====== Sentence 2 tokens =======
id: (1,) text: This
id: (2,) text: is
id: (3,) text: United
id: (4,) text: States
id: (5,) text: .
uj5u.com熱心網友回復:
https://lmbtfy.cn/s/57tcLjzAW3轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/212686.html
上一篇:如何才能成功做好一個RPA專案?
