Я работал над программой, которая находит слова, которые появляются в тексте только один раз.Однако, когда программа находит слово, я хочу, чтобы оно давало некоторый контекст вокруг этого слова.
Вот мой код.
from collections import Counter
from string import punctuation
text = str("bible.txt")
with open(text) as f:
word_counts = Counter(word.strip(punctuation) for line in f for word in
line.split())
unique = [word.lower() for word, count in word_counts.items() if count == 1]
with open(text, 'r') as myfile:
wordlist = myfile.read().lower()
print(unique)
print(len(unique), " unique words found.")
for word in unique:
first = 1
second = 1
index = wordlist.index(word)
if wordlist[index - first:index] is not int():
first += 1
if wordlist[index:index + second] is not ".":
second += 1
print(" ")
first_part = wordlist[index - first:index]
second_part = wordlist[index:index + second]
print(word)
print("%s %s" % ("".join(first_part), "".join(second_part)))
Где это - это вводtext.
В идеале это будет показывать
sojournings
1 Jacob lived in the land of his father's sojournings, in the land of
Canaan.
generations
2 These are the generations of Jacob.
По сути, я хочу, чтобы оно показывало предложение, в котором находится это слово, с номером стиха в начале.Я знаю, что что-то сделаю с индексом, но, честно говоря, я не знаю, как это сделать.
Любая помощь будет принята с благодарностью.
Спасибо, Бен