2014-02-05 23 views
0

我有句子的列表:re.findall在列表中的每個句子

[        'home twn cafe nr link rd', 
           'taj lands ends hotel..', 
      'SILVER PALACE705BPALI MALA ROADBANDRA WEST', 
    'turner rd lemon rd 4 fountain pali rd junctio...',  
     ' FLAT 657 FLOOR AIR INDIA APTS 61B PALI HILL', 
         'bungalow 9 Mt Mary Bandra West', 
    'shabbir apt charklie rajan rd abv icici ban...', 
       'st peters church backyard loun hill rd', 
             'Union Park Road ', 
           'Flat 32 Building No 8', 
             'mehboob studio', 
              'ONGC Colony', 
'Nargis Dutt Road Grand Canyon Building Appa'] 

我需要使用re.findall找到與「次」的所有單詞,並與「路」取代它們。我嘗試這樣做:

data2 = [nltk.sent_tokenize(lines) for lines in data] 
c = [re.findall('nr',sent) for sent in data2] 

,我得到這個錯誤:

TypeError: expected string or buffer

我怎麼在迭代語句中使用re.findall?不知道如何轉換爲字符串.. plz幫助

+5

如果這應該是句子的列表,那你爲什麼要在上面運行一個語句分割器? –

+0

我是一個新手,所以我不知道該怎麼做..第一個陳述是標記每個句子,以便它可以被視爲一個實體。第二個是迭代每個標記句子..請幫助.. –

回答

2

我會用一個簡單的正則表達式和列表理解這樣

import re 
pattern = re.compile(r"\brd\b") 
print [pattern.sub("road", line) for line in data] 

輸出

['home twn cafe nr link road', 
'taj lands ends hotel..', 
'SILVER PALACE705BPALI MALA ROADBANDRA WEST', 
'turner road lemon road 4 fountain pali road junctio...', 
' FLAT 657 FLOOR AIR INDIA APTS 61B PALI HILL', 
'bungalow 9 Mt Mary Bandra West', 
'shabbir apt charklie rajan road abv icici ban...', 
'st peters church backyard loun hill road', 
'Union Park Road ', 
'Flat 32 Building No 8', 
'mehboob studio', 
'ONGC Colony', 
'Nargis Dutt Road Grand Canyon Building Appa'] 
+0

嗨,thnx它的工作..我需要了解字符串,列表轉換等概念。你可以建議一些網站?我已經通過nltk.org .. –

+0

@劍請看看[列表解析](http://docs.python.org/2/tutorial/datastructures.html),[字符串方法](http:///docs.python.org/2/library/stdtypes.html#string-methods) – thefourtheye

+0

thanx bro ..我希望你們明白我是nltk的新手,所以我的問題和方法可能有點不對。所以我感謝你的合作和支持:) –

相關問題