我怎么能从文本文件中搜索特定的字符串?

时间:2014-06-18 18:05:52

标签: python nltk

我的文件如下:

  

评论/摘要:美丽的基本泵......评论/文字:......但不是   足够的尺寸或颜色。符合我的尺寸8-1 / 2英尺.Bottom   鞋底是完全光滑的...需要某种纹理或踏板   有助于防止打滑。评论/文字:太棒了。首先,这个是   不是原来的Gil Zero,而是Gil Zero TD,这意味着它没有   有什么技巧。但是,它是我最舒服的运动鞋   永远都知道。如果没有昂贵的技术,它的中底会获得更多   柔软,更耐用。并将其鞋面改为真实   皮革,它变得更适合脚。这种变化使它成为现实   即使是比昂贵的原装鞋更好的运动鞋,只是为了   一个真正伟大的运动鞋的伟大设计,但不是为了我们无用的   普通人不是超级巨星,技术。在球场上,我   发现它足够的垫子,它可以给你更多的速度,优秀   一个为后卫或小前锋。

我想提取quick serviceexcellent serviceamazon is greatexcellent customer service

等字符串

我的代码如下所示:

def ethos(file):
    f = open(file)
    raw = f.read()
    tokens = nltk.sent_tokenize(raw)
    text = nltk.Text(tokens)
    sents = []
    matching_strings = ['thanks amazon' , 'great service' , 'reasonable shipping time' , 'quick service']
    for tokens in text:
        if tokens in matching_strings:
            sents.append(tokens)
    return sents

我的输出是空白的,请让我知道如何正确处理它,我对语言处理非常陌生

1 个答案:

答案 0 :(得分:0)

我从未使用过nltk,但我会猜测解决方案。由于您的令牌是句子,因此您需要在令牌中查找匹配的字符串,而不是像现在一样寻找其他方式。你的for循环应该如下所示:

for tokens in text:
    for match in matching_strings:
        if match in tokens:
            sents.append(tokens)
            break
return sents