2016-09-26 3 views
1

Мне нужно взять текст и удалить символ \ n, который, я считаю, я сделал. Следующая задача - удалить дефис из слов, где он не должен появляться, но оставить дефис в составных словах, где он должен появиться. Например, «encyclo- \ npedia to« энциклопедия »и« long-\ nterm »в« долгосрочный ». Предложение состоит в том, чтобы сравнить его с оригинальным текстом.Python - текстовое обертывание «Отменить»

with open('C:\Users\Paul\Desktop\Comp_Ling_Research_1\BROWN_A1_hypenated.txt', 'rU') as myfile: 
data=myfile.read().replace('\n', '') 

У меня есть общее представление о том, что делать, но NLP для меня совершенно новый.

ответ

1

Первым шагом было бы сохранить набор допустимых слов и дефисетировать, если ваше дефисное слово находится в наборе допустимых слов. Ubuntu имеет список допустимых слов в/usr/share/dict/american-english. Слишком простой вариант может выглядеть следующим образом:

valid_words = set(line.strip() for line in open(valid_words_file)) 

output = [] 
for word in open(new_file).read().replace('-\n', '').replace('\n', ' ').split(): 
    if '-' in word and word.replace('-', '') in valid_words: 
     output.append(word.replace('-', '')) 
    else: 
     output.append(word) 

Вам придется иметь дело с пунктуацией, капитализации и т.д., но это идея.

+0

спасибо. Я думал о том, как дефисить. Концептуально я написал это: # Если у вас есть два списка или файлы, # Для одного элемента в первом списке с дефисом #check для того же элемента во втором списке с дефисом или без него. # Если элемент во втором списке не имеет дефиса, то удалите дефис из первого списка. –

+0

Может быть хорошая ссылка. Если я ищу удаление дефисов, я нахожу простой метод, но не как удалить дефисы на основе списка ссылок. Похоже, что это своего рода процесс обратного текстового обертки. –

+0

импорта повторно с открытыми ('C: \ Users \ Paul \ BROWN_A1.txt', 'RU'), как truefile: true_corpus = truefile.read() true_tokens = true_corpus.split (»«) с открытой ('C: \ Users \ Paul \ Desktop \ Comp_Ling_Research_1 \ BROWN_A1_hy penated.txt', 'Rū'), как MYFILE: my_corpus = myfile.read() my_tokens = my_corpus.split (»«) –

-1
import re 


with open('C:\Users\Paul\BROWN_A1.txt', 'rU') as truefile: 
    true_corpus = truefile.read() 

true_tokens = true_corpus.split(' ') 

with open('C:\Users\Paul\Desktop\Comp_Ling_Research_1\BROWN_A1_hypenated.txt', 'rU') as myfile: 

my_corpus = myfile.read() 

my_tokens = my_corpus.split(' ') 
+0

Как это сделать, чтобы решить вашу проблему? – alexis

Смежные вопросы