簡體   English   中英

使用Python在運行文本中拆分單詞?

[英]Splitting words in running text using Python?

我正在編寫一段將從運行文本中提取單詞的代碼。 該文本可以包含定界符,例如\\ r,\\ n等。

我想放棄所有這些定界符,只提取完整的單詞。 如何使用Python執行此操作? 任何可用於在python中處理文本的庫?

假設您對“單詞”的定義與正則表達式模塊( re )的定義相同,即字母,數字和下划線,則很簡單:

import re
fullwords = re.findall(r'\w+', thetext)

此處的thetext是所討論的字符串(例如,從文件對象ff.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM