Узгодження з Python

Ваші цілі полягають у тому, щоб підказати користувачеві текстовий файл для аналізу. Вам також буде надано з файлом стоп-слів - слова, які будуть ігноруватися під час аналізу файлу. Після Створюючи конкордант, надрукуйте результати узгодження, як зазначено в прикладі наведений нижче. Для кожного слова в конкорданті ви друкуєте:

  • the word
  • the total number of occurrences
  • for each occurrence:
    • the line number in the file (the first line is line #1)
    • the local context. The local context is the original line with the specified word in all upper case.

Ось що я досі маю:

import string
file_str = raw_input("What file to analyze:")
file_obj = open(file_str)
for line in file_obj.readlines():
    line = line.strip()
    split_line = line.split()
    for word in split_line:
        word = word.lower()
        word = word.strip(string.punctuation)

Я не впевнений, куди піти!

0
Я почав би аналізувати, які структури даних потрібно. Як ви будете зберігати слова? Як ви будете зберігати потрібну інформацію про кожне слово? Потім зрозумійте, як ви збираєте цю інформацію.
додано Автор kindall, джерело
Аналогічне запитання було висловлено в останні кілька днів. Можливо, вам захочеться трохи переглянути архів.
додано Автор Sven Marnach, джерело
Яку частину ви намагаєтеся зробити, щоб ви застрягли?
додано Автор millimoose, джерело
у вас є питання синтаксису: відступ всім кодом нижче четвертого рядка. Як ви визначаєте конкорданси?
додано Автор Simon, джерело
@Sven є інші питання на одній домашній роботі, але вони можуть зіпсувати елементи відповіді на ОП. Якщо що-небудь, Емілі повинна спробувати сформулювати проблему більш точно. Розглянемо це як спеціальний бонусний тренінг для неї :-)
додано Автор Simon, джерело
ми отримали текстові файли з історіями, такими як їхній павук, і ми повинні були підрахувати головне слово в ньому, а потім набрати його великими літерами. Приклад Вивід: Аналізуйте, який файл: itsy_bitsy_spider.txt Конкорд для файлу Лінія: 1: Павук ITSY Bitsy повзав по водному носику Лінія: 4: і павук ITSY Bitsy знову піднявся носиком! crawled: Загальна кількість: 1 Рядок: 1: Павук Itsy Bitsy КРИВАЄ до носика зливу води: Загальна кількість: 2 Лінія: 1: Павук Itsy Bitsy повзав по воді SPOUT Line: 4: і павук Itsy Bitsy піднявся Знову знову!
додано Автор stackoverflow_user1, джерело

1 Відповіді

Ну, вам потрібно мати лічильник, який ви збільшуєте на кожній ітерації зовнішнього циклу, тому що вас просять надати деяку інформацію про номери рядків.

Тоді наступним кроком є ​​створення словника. За межами петлі

words = {}

Кожен раз, коли ви зустрінете слово, перевірте, чи це вже ключ у словнику.

if word in words:

Якщо так, оновіть запис

    word_info = words[word]
    word_info =//something changed
   //possibly you need this depending on the type of word_info
    words[word] = word_info

Якщо ні, створіть новий запис

else:
    word_info =//something
    words[word] = word_info

Я залишу це до вас, щоб з'ясувати, яке значення має бути word_info.

0
додано
ми отримали текстові файли з історіями, такими як їхній павук, і ми повинні були підрахувати головне слово в ньому, а потім набрати його великими літерами. \ t Лінія: 1: Павук ITSY Bitsy повзав по водному носику Лінія: 4: і павук ITSY Bitsy знову піднявся носиком! crawled: Загальна кількість: 1 Рядок: 1: Павук Itsy Bitsy КРИВАЄ до носика зливу води: Загальна кількість: 2 Лінія: 1: Павук Itsy Bitsy повзав по воді SPOUT Line: 4: і павук Itsy Bitsy піднявся Знову знову!
додано Автор stackoverflow_user1, джерело
ІТ КПІ - Python
ІТ КПІ - Python
625 учасників

Канал обговорень про всякі штуки зі світу пайтону. Прохання: 0. мати повагу одне до одного; 1. не матюкатися в сторону людей; 2. не захламляти тред повідомленнями по одному слову;