我一直在教自己在Python中的正則表達式,我決定打印出文本的所有句子。過去3個小時,我一直在修改正則表達式,無濟於事。正則表達式來查找文本的所有句子?
我只是試過以下,但什麼都不能做。
p = open('anan.txt')
process = p.read()
regexMatch = re.findall('^[A-Z].+\s+[.!?]$',process,re.I)
print regexMatch
p.close()
我的輸入文件是這樣的:
OMG is this a question ! Is this a sentence ? My.
name is.
這將打印沒有輸出。但是當我刪除「我的名字是。」時,它會打印出OMG,這是一個問題,這是一個句子,就像它只讀第一行一樣。
正則表達式的最佳解決方案是什麼,可以找到文本文件中的所有句子 - 無論句子是否帶有新行 - 還可以讀取整個文本?謝謝。
也許這可以幫助:http://stackoverflow.com/questions/587345/python-regular-expression-matching-a-multiline-block-of-text – Arslan 2010-08-23 15:46:09
我不能相信沒有人用這種語言插話:可靠的句子邊界檢測definitley不可能用正則表達式。即使使用諸如自然語言工具包的ntlk.tokenizer.sent_tokenize(http://nltk.googlecode.com/svn/trunk/doc/api/nltk.tokenize-module.html)等複雜工具也是如此。 – twneale 2010-08-23 16:38:26