С: https://www.textrazor.com/docs/python#Dictionary
Я реализовал следующий код:
client = textrazor.TextRazor("API_key", extractors=["words", "phrases", "topics", "relations","entities"])
client.set_classifiers(["textrazor_iab"])
manager = textrazor.DictionaryManager('API_key')
manager.create_dictionary({'id':'dict_ID'})
new_entity_type_data = {'type': ['cpp_developer']}
manager.add_entries('dict_ID', [{'id': 'DEV1', 'text': 'Andrei Alexandrescu', 'data':new_entity_type_data}, {'id': 'DEV2', 'text':'Bjarne Stroustrup', 'data':new_entity_type_data}])
client.set_entity_dictionaries(['dict_ID'])
response = client.analyze('Although it is very early in the process, higher-level parallelism is slated to be a key theme of the next version of C++, says Bjarne Stroustrup')
Я получаю следующую ошибку при запуске response.entities()
:
AttributeError: 'NoneType' object has no attribute 'encode'
Когда я надеваюНе использую пользовательский словарь, я получаю следующий вывод:
[TextRazor Entity b'Bjarne Stroustrup' at positions [26, 27],
TextRazor Entity b'C++' at positions [23]]
Я проверил это с разными предложениями и разными сущностями в пользовательском словаре. Я получаю одну и ту же ошибку каждый раз, когда объект, который я добавил в пользовательский словарь, появляется в анализируемом предложении. Если я создаю пользовательский словарь, но в предложении нет слов, являющихся сущностями в словаре, не выдается ошибка.
Это указывает на то, что сущность распознается с использованиемпользовательский словарь, иначе ошибка не будет выдана. Но по какой-то причине у этой сущности нет типа данных.
Так что мой вопрос, вероятно, можно перевести на;Как добавить действительный тип данных в сущность, которую я добавляю в пользовательский словарь?