Я хотел бы найти ключевые слова из предложения с данными в стиле списка значений ключа и вернуть соответствующие предложения со ссылками на предложения. Я работал над checkSentence (). Я знаю, как написать, чтобы получить результат только для цитаты:
def checkSentence(quote_list, searchItems):
result_sentence = [all([searchingWord in searchingSentence for searchingWord in searchItems]) for searchingSentence in quote_list]
return [quote_list[i] for i in range(0, len(result_sentence)) if result_sentence[i]]
checkResult = checkSentence(quote_list, searchItems)
quoteResult_list = []
for quote in checkResult:
quoteResult_list.append(quote)
print(len(quoteResult_list))
print(quoteResult_list)
И теперь я хотел бы сделать это, чтобы получить предложения («содержание» в данных, скажем так) со ссылками ( "статья"). Это было бы что-то вроде [«Мир сделан из сладкого». «Мир»].
Должно быть два цикла for, в которых первый слой - это поиск предложений, а второй - for-l oop должен получать «статью» предложений. Я понятия не имею, почему это не работает? Похоже, ошибка в item_list ["quote"] и item_list ["article"]? Большое спасибо!
Код следующий:
import json
import os
# data part
data = {
"title": "Vulnerable",
"items": [
{
"article": "The World",
"content": [
"The world is made of sweet.",
"The sweet tastes so good.",
]
},
{
"article": "The Disaster",
"content": [
"That is the sweet wrapping with poison.",
"Is that true? Are you kidding?",
]
},
{
"article": "The Truth",
"content": [
"Trust me. That is not sweet!",
"You see? That is why!",
]
}
]
}
# keywords for searching
searchItems = ["sweet", "is"]
# deal with data to list
item_list = []
quote_list = []
article_list = []
for item in data["items"]:
article = item["article"]
for quote in item["content"]:
item_list.append({article, quote})
quote_list.append(quote)
article_list.append(article)
# check if sentences include keywords
def checkSentence(item_list, searchItems):
for sentence in item_list["quote"]:
result_sentence = [all([searchingWord in searchingSentence for searchingWord in searchItems]) for searchingSentence in sentence]
sententceResult = [item_list[i] for i in range(0, len(result_sentence)) if result_sentence[i]]
for article in item_list["article"]:
return_article = [all([searchingWord in searchingSentence for searchingWord in searchItems]) for searchingSentence in article]
quoteResult = [item_list[i] for i in range(0, len(return_article)) if return_article[i]]
return sententceResult, quoteResult
# make the searching result as list item
checkResult = checkSentence(item_list, searchItems)
quoteResult_list = []
for quote in checkResult:
quoteResult_list.append(quote)
print(quoteResult_list)