[英]Splitting words in running text using Python?
我正在編寫一段將從運行文本中提取單詞的代碼。 該文本可以包含定界符,例如\\ r,\\ n等。
我想放棄所有這些定界符,只提取完整的單詞。 如何使用Python執行此操作? 任何可用於在python中處理文本的庫?
假設您對“單詞”的定義與正則表達式模塊( re
)的定義相同,即字母,數字和下划線,則很簡單:
import re
fullwords = re.findall(r'\w+', thetext)
此處的thetext
是所討論的字符串(例如,從文件對象f
的f.read()
中打開以進行讀取,如果那是您從中獲取文本的位置)。
如果您以不同的方式定義單詞(例如,您想要包括撇號,那么例如將“ it's”視為“一個單詞”),則難度就不大了–只需將findall
作為合適的模式的第一個參數,例如r"[\\w']+"
表示撇號。
如果您需要非常非常復雜(例如,處理單詞之間不間斷的語言),那么問題突然變得更加棘手,您將需要一些第三方軟件包,例如nltk 。
假設分隔符是空格字符(例如空格, \\r
和\\n
),則基本的str.split()
您的要求:
>>> "asdf\nfoo\r\nbar too\tbaz".split()
['asdf', 'foo', 'bar', 'too', 'baz']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.