【问题标题】:re.findall on each sentence of a listre.findall 在列表的每个句子上
【发布时间】:2014-03-01 16:55:35
【问题描述】:

我有一个句子列表:

[                              '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 来查找所有带有 'rd' 的单词,并将它们替换为 'road'。我试过这个:

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

我得到了这个错误:

TypeError:预期的字符串或缓冲区

如何在迭代语句中使用re.findall?不知道如何转换为字符串..请帮助

【问题讨论】:

  • 如果这应该是一个句子列表,那你为什么要在上面运行一个句子拆分器?
  • 我是新手,所以我不知道该怎么做。第一个语句是对每个句子进行标记,以便将其视为一个实体。第二个是迭代每个标记化的句子..请帮助..

标签: python regex string list nltk


【解决方案1】:

我会像这样使用简单的 RegEx 和列表理解

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']

【讨论】:

  • 嗨,谢谢它的工作..我需要了解字符串,列表转换等的概念。你可以推荐一些网站吗?我已经浏览过 nltk.org..
  • thanx bro.. 我希望你们明白我是 nltk 的新手,所以我的问题和方法可能有些错误。所以我感谢你的合作和支持我:)
  • @fourtheye ,如果我想一次更正多个单词怎么办.. 比如 opp,op with 相反,abv by above 等等.. ??
  • 我已经通过覆盖每个 tym 的数据来完成它。所以最后我会把一切都做好..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-29
  • 1970-01-01
  • 2017-08-27
相关资源
最近更新 更多