對于英文文本分句比較簡單,只要根據終結符"."劃分就好,中文文本分句看似很簡單,但是實現時會遇到很多麻煩,尤其是處理社交媒體數據時,會遇到文本格式不規范等問題。
下面代碼針對一段一段的短文本組成了文檔分句
import re def cut_sent(infile, outfile): cutLineFlag = ["?", "!", "。","…"] #本文使用的終結符,可以修改 sentenceList = [] with open(infile, "r", encoding="UTF-8") as file: oneSentence = "" for line in file: if len(oneSentence)!=0: sentenceList.append(oneSentence.strip() + "\r") oneSentence="" # oneSentence = "" for word in words: if word not in cutLineFlag: oneSentence = oneSentence + word else: oneSentence = oneSentence + word if oneSentence.__len__() > 4: sentenceList.append(oneSentence.strip() + "\r") oneSentence = "" with open(outfile, "w", encoding="UTF-8") as resultFile: print(sentenceList.__len__()) resultFile.writelines(sentenceList)
如果段尾3沒有終結符但是換行了,這句話可能會丟失,所有加入如下代碼:
if len(oneSentence)!=0: sentenceList.append(oneSentence.strip() + "\r") oneSentence=""
會得到比較好的處理結果
要處理的文本:
自從微信出了三天可見功能,我的朋友圈就越來越冷清越來越冷清越來越冷清,點開都沒什么可看的了。今天我把屏蔽的代購一個一個一個都放出來了,快過年了,熱鬧點 一女性,想DIY矯正門牙縫隙,在家自己制取模型,結果悲劇了,因為用的是石膏,自己無法取出,來我院求助,醫生廢了九牛二虎之力才搞定……DIY有風險,操作需謹慎! 閨女同學家養了一只鸚鵡,兩只珍珠鳥,一只貓,兩只倉鼠。鸚鵡是老大,珍珠鳥怕它,貓是后進家的,也怕鸚鵡。倉鼠經常溜出籠子,據說貓會把它逮住塞回籠子。
處理后的文本:
自從微信出了三天可見功能,我的朋友圈就越來越冷清越來越冷清越來越冷清,點開都沒什么可看的了。 今天我把屏蔽的代購一個一個一個都放出來了,快過年了,熱鬧點 一女性,想DIY矯正門牙縫隙,在家自己制取模型,結果悲劇了,因為用的是石膏,自己無法取出,來我院求助,醫生廢了九牛二虎之力才搞定… DIY有風險,操作需謹慎! 閨女同學家養了一只鸚鵡,兩只珍珠鳥,一只貓,兩只倉鼠。 鸚鵡是老大,珍珠鳥怕它,貓是后進家的,也怕鸚鵡。 倉鼠經常溜出籠子,據說貓會把它逮住塞回籠子。
得到了比較好的分句結果,也不會丟失信息。
以上這篇python實現中文文本分句的例子就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
