我想用nltk.sent_tokenize
將一些客戶的評論拆分爲句子。我已經嘗試解決一些使用下面的代碼的問題:使用nltk.sent_tokenize分割句子,它不提供正確的結果
comment = comment.replace('?', '? ').replace('!', '! ').replace('..','.').replace('.', '. ')
但我不知道如何解決以下幾個問題:
客戶使用的幾個
"."
一些句子之後。例如:Think tool is a huge factor in this....i have only
顧客使用的幾個
"!"
一些句子後,如auditory subject everyday!!!!!
它們中的一些在句子的結尾使用
"!"
和"."
組合。因爲我已經習慣
replace('.', '. ')
,它還導致以下問題:體重增加
(20lbs.)
,被分至(20lbs.
)
什麼建議嗎?我正在使用Python。
完全自由形式的文本是非常有問題的,所以不可能只有一組靜態嘗試的修復程序在任何地方都能正常工作。但是,您所描述的問題可以通過將重複標點符號的運行減少爲單個實例來解決,然後在添加空格之後添加空格,然後在關閉括號之前刪除空格。 – tripleee
@tripleee,謝謝!你能給出一個解決方案,我可以減少重複標點的數量,比如「。」。要麼 」!」。 ? – Mary
用正則表達式足夠簡單。 're.sub(r'([,。;:!?])\ 1+',r'\ 1','hello .....你好嗎')' – tripleee