Форум сайта python.su
0
Будьте добры, помогите решить мне одну задачу. Я написал код, который читает два txt-файла. Первый - словарь, второй - текст. Требуется сверить каждое слово из текста с словарем, вывести на экран все слова из текста, которых нет в словаре и их номера строк. Вот код без части поиска, в котором, возможно есть ошибки.
import re
def split_line(line):
return re.findall('+(?:\'+)?',line)
file = open(“dictionary.txt”)
dictionary_list =
for line in file:
line = line.strip()
dictionary_list.append(line)
file.close()
text = open(“AliceInWonderLand200.txt”)
for line in text:
line = line.strip()
split_line(line)
for word in line:
word = word.upper()
file.close()
P.S. Вот так нагляднее
Отредактировано Knep (Апрель 10, 2014 23:43:35)
Офлайн
22
Knepзадача в чем?
помогите решить мне одну задачу.
Офлайн
221
ilnur
внимательно читайте сообщение:
Knepчеловек написал то что смог,а дальше просит помощи.
Требуется сверить каждое слово из текста с словарем, вывести на экран все слова из текста, которых нет в словаре и их номера строк.
Офлайн
22
JOHN_16
написал. наверное же запустил? наверное что-то не так отработало же? тяжело написать что не так?
Офлайн
0
#------------------------------------------------------------------------------- # Name: модуль1 # Purpose: # # Author: -------- # # Created: 11.04.2014 # Copyright: (c) -------- 2014 # Licence: <your licence> #------------------------------------------------------------------------------- # -*- coding: utf-8 -*- import re bla = [] blabla = [] #открыли словарь file = open("1.txt") #инициализация списка dictionary_list = [] d_list = [] #добавляем с список словаиз файла, разделитель пробел for line in file: #line это строка, убрали пробел по краям line = line.strip() line = line.upper() #разделили строку на слова d_list=line.split() for xxx in d_list: dictionary_list.append(xxx) #На слова разбили #print(dictionary_list) file.close() #открыли ДОКУМЕНТ file_2 = open("2.txt") #инициализация списка dictionary_list_1 = [] dictionary_list_2 = [] d_list_1 = [] #добавляем с список словаиз файла, разделитель пробел for line in file_2: #line это строка, убрали пробел по краям line = line.strip() line = line.upper() dictionary_list_2.append(line) #разделили строку на слова d_list_1=line.split() for xxx in d_list_1: dictionary_list_1.append(xxx) #На слова разбили #print(dictionary_list_2) file_2.close() #Нашли слова не присутствующие в 1 списке for x in dictionary_list: for y in dictionary_list_1: if x==y: dictionary_list_1.remove(y) #print(dictionary_list_2) cheker=0 #ищем вхождения for stroka in dictionary_list_2: cheker+=1 for slovo in dictionary_list_1: if slovo in stroka: bla.append(slovo) blabla.append(cheker) #print(slovo,cheker) print(bla,blabla)
Отредактировано hhhhhhhh1 (Апрель 11, 2014 13:52:55)
Офлайн
221
ilnur
вы кажется не совсем поняли, человек не знает как решить свою задачу. То что он написал это не то что он хотел получить в итоге т.е. считать слова из файлов он может, а как правильно сделать поиск не знает вот тут он и просит помощи.
Офлайн
49
Knep
Будьте добры, помогите решить мне одну задачу. Я написал код, который читает два txt-файла. Первый - словарь, второй - текст. Требуется сверить каждое слово из текста с словарем, вывести на экран все слова из текста, которых нет в словаре и их номера строк.
#!/usr/bin/env python #- * -coding:utf8 - * - with open('dictionary.txt', 'r') as dict_file, open('text.txt', 'r') as text_file: dictionary = dict_file.read().replace('\n', ' ').lower() text = text_file.read().lower() res = ({num + 1: word} for num, string in enumerate( text.split('\n')) for word in string.translate(None, '.,!?-+=0123456789').split() if not word in dictionary.split()) print(""" +------------------+------------------------------+ | Number of string | Word | +------------------+------------------------------+""") for i in res: print('|{!s:<18}|{!s:>30}|'.format(i.keys()[0], i.values()[0])) print("+------------------+------------------------------+")
Отредактировано Alen (Апрель 12, 2014 21:04:00)
Офлайн
0
Alen, большое спасибо!
Офлайн