2 回答

TA貢獻1719條經驗 獲得超6個贊
請注意,您的示例文本很簡單,但標點規則可能很復雜或未正確遵守。包含 2 個相鄰空格的文本是什么(是的,它不正確但很頻繁)?如果作者更習慣法語并在冒號或分號前后寫空格怎么辦?
我認為's構造需要特殊處理。怎么樣:"""John has a bicycle. Mary says that her one is nicer that John's."""恕我直言,這個詞John在這里出現了兩次,而你的算法會看到 1John和 1 Johns。
此外,由于 Unicode 文本現在在 WEB 頁面上很常見,您應該準備好找到空格和標點符號的高代碼等效項:
“ U+201C LEFT DOUBLE QUOTATION MARK
” U+201D RIGHT DOUBLE QUOTATION MARK
’ U+2019 RIGHT SINGLE QUOTATION MARK
‘ U+2018 LEFT SINGLE QUOTATION MARK
U+00A0 NO-BREAK SPACE
此外,根據這個較舊的問題,刪除標點符號的最佳方法是translate. 鏈接問題使用 Python 2 語法,但在 Python 3 中您可以執行以下操作:
paragraph = paragraph.strip() # remove initial and terminal white spaces
paragraph = paragraph.translate(str.maketrans('“”’‘\xa0', '""\'\' ')) # fix high code punctuations
paragraph = re.replace("\w's\s", "", paragraph) # remove 's
paragraph = paragraph.translate(str.maketrans(None, None, string.punctuation) # remove punctuations
words = paragraph.split()
添加回答
舉報