Convertendo plural para singular em um arquivo de texto com Python
Eu tenho arquivos txt que se parecem com isso:
word, 23
Words, 2
test, 1
tests, 4
E eu quero que eles sejam assim:
word, 23
word, 2
test, 1
test, 4
Eu quero ser capaz de pegar um arquivo txt em Python e converter palavras no plural para singular. Aqui está o meu código:
import nltk
f = raw_input("Please enter a filename: ")
def openfile(f):
with open(f,'r') as a:
a = a.read()
a = a.lower()
return a
def stem(a):
p = nltk.PorterStemmer()
[p.stem(word) for word in a]
return a
def returnfile(f, a):
with open(f,'w') as d:
d = d.write(a)
#d.close()
print openfile(f)
print stem(openfile(f))
print returnfile(f, stem(openfile(f)))
Eu também tentei essas 2 definições em vez dostem
definição:
def singular(a):
for line in a:
line = line[0]
line = str(line)
stemmer = nltk.PorterStemmer()
line = stemmer.stem(line)
return line
def stem(a):
for word in a:
for suffix in ['s']:
if word.endswith(suffix):
return word[:-len(suffix)]
return word
Depois, gostaria de usar palavras duplicadas (por exemplo,test
etest
) e mescle-os adicionando os números ao lado deles. Por exemplo:
word, 25
test, 5
Não sei bem como fazer isso. Uma solução seria boa, mas não necessária.