Понимание естественного языка (NLU) Понятия не возвращены
Я извлекаю концепции, используя API-интерфейс IBM Watson Natural Language Understanding (NLU). Для большинства текстов он может извлечь по крайней мере 1 или 2 Концепции, однако в некоторых простых случаях он не возвращает Концепции.
from watson_developer_cloud import NaturalLanguageUnderstandingV1
from watson_developer_cloud.natural_language_understanding_v1 import Features, CategoriesOptions, ConceptsOptions, RelationsOptions
natural_language_understanding = NaturalLanguageUnderstandingV1( version='2018-11-16', iam_apikey='API-KEY', url='https://gateway.watsonplatform.net/natural-language-understanding/api')
post="Are Dostoevsky's characters supposed to be over-the-top caricatures? I just started reading The Idiot. I've also read The Brothers Karamazov and I don't find many of his characters believable. I know his books contain philosophical messages, but it seems like he sometimes pushes the philosophy at the expense of the story. In reviews, I read about how much Dostoevsky understands psychology and the human condition, but I can't relate to the characters. They seem over done."
response = natural_language_understanding.analyze(
text=post, features=Features(
concepts=ConceptsOptions(limit=10))).get_result()
Результат, возвращаемый в переменной ответа:
{'concepts': [], 'language': 'en', 'usage': {'features': 1, 'text_characters': 393, 'text_units': 1}}
Это известное ограничение API, о котором я не знаю, или есть какая-то проблема с тем, как я называю API?
1 ответ
Для того же текста я могу получить следующие выходные данные для концепций из API с теми же ограничениями и той же датой версии.
"concepts": [
{
"text": "Existentialism",
"relevance": 0.988784,
"dbpedia_resource": "http://dbpedia.org/resource/Existentialism"
},
{
"text": "The Brothers Karamazov",
"relevance": 0.856152,
"dbpedia_resource": "http://dbpedia.org/resource/The_Brothers_Karamazov"
},
{
"text": "Fyodor Dostoyevsky",
"relevance": 0.83996,
"dbpedia_resource": "http://dbpedia.org/resource/Fyodor_Dostoyevsky"
},
{
"text": "Human condition",
"relevance": 0.716108,
"dbpedia_resource": "http://dbpedia.org/resource/Human_condition"
},
{
"text": "Psychology",
"relevance": 0.687781,
"dbpedia_resource": "http://dbpedia.org/resource/Psychology"
},
{
"text": "Philosophy of life",
"relevance": 0.675628,
"dbpedia_resource": "http://dbpedia.org/resource/Philosophy_of_life"
},
{
"text": "Meaning of life",
"relevance": 0.65926,
"dbpedia_resource": "http://dbpedia.org/resource/Meaning_of_life"
},
{
"text": "Human nature",
"relevance": 0.652501,
"dbpedia_resource": "http://dbpedia.org/resource/Human_nature"
}
]
Можете ли вы передать какой-нибудь текст из Википедии в любое известное место, чтобы проверить, вернулись ли вообще какие-либо понятия в вывод. Также убедитесь, что вы не устанавливаете язык по умолчанию при отправке информации в API. NLU автоматически определяет язык, если в большинстве случаев текст содержит более 100 символов. Например, если вы установите язык на испанский (-ые), он может задействовать механизм концепций испанского языка, и вы можете получить несколько результатов или вообще ничего.