如何根据python中的后缀提取单词

时间:2015-03-26 10:31:54

标签: python nltk

我在python中有以下代码:

import re;
import nltk;
from nltk.util import ngrams;
file="C:/Python26/test.txt";
f=open("Suffix.txt",'w');
with open(file,'r') as rf:
    lines = rf.readlines();
    c=0;
    for word in lines:
        if word.endswith(beta):
            f.write(word.strip("\n")+"\t"'1'"\n");
            c=c+1;
        else:
            f.write(word.strip("\n")+"\t"'0'"\n");
            c=c+1;
    print c;
    f.close()

此代码未提供标记" 1"对于那些以" beta"开头的单词,当我将endswith()替换为statrswith()时,此代码效果很好,endswith()将带有标记" 1"谁开始使用" beta"但不适用于{{1}}。

我不太了解这种行为。为什么会这样?

我的文件看起来像这样

IL-2
基因
表达

NF-卡帕

激活
通过
CD28
需要
反应

生产
通过
5脂氧合酶

2 个答案:

答案 0 :(得分:0)

这是因为word'\n'结尾。您应该确保在检查之前剥离该部分,或者检查它是否以'beta\n'结束。

答案 1 :(得分:0)

尝试

if word.strip().endswith(beta):