Поддерживается ли outputMode в alchemy_language.entities?

У меня есть этот унаследованный код, который в Python 2.7 успешно возвращает результаты в xml, которые затем анализируются ElementTree.

result = alchemyObj.TextGetRankedNamedEntities(text)

root = ET.fromstring(result)

Я обновляю программу до Python 3.5 и пытаюсь сделать это, чтобы мне не нужно было изменять синтаксический анализ результатов xml:

result = alchemy_language.entities(outputMode='xml', text='text', max_
items='10'),

root = ET.fromstring(result)

Согласно http://www.ibm.com/watson/developercloud/alchemy-language/api/v1/#entities outputMode позволяет выбирать между json по умолчанию и xml. Однако я получаю эту ошибку:

Traceback (most recent call last):
  File "bin/nerv35.py", line 93, in <module>
    main()
  File "bin/nerv35.py", line 55, in main
    result = alchemy_language.entities(outputMode='xml', text='text', max_items='10'),
TypeError: entities() got an unexpected keyword argument 'outputMode'

Существует ли outputMode на самом деле? Если да, то что не так с параметрами объектов?


person Fred Zimmerman    schedule 24.08.2016    source источник
comment
Вы используете watson_developer_cloud?   -  person Simon O'Doherty    schedule 24.08.2016


Ответы (1)


Похоже, что watson-developer-cloud не имеет этой опции для сущностей. Допустимые настройки:

html
text
url
disambiguate
linked_data
coreference
quotations
sentiment
show_source_text
max_items
language
model

Вы можете попробовать получить доступ к API напрямую, используя requests. Например:

import requests

alchemyApiKey = 'YOUR_API_KEY'
url = 'https://gateway-a.watsonplatform.net/calls/text/TextGetRankedNamedEntities'

payload = { 'apikey': alchemyApiKey,
            'outputMode': 'xml',
            'text': 'This is an example text. IBM Corp'
           }

r = requests.post(url,payload)

print r.text

Должно вернуть это:

<?xml version="1.0" encoding="UTF-8"?>
<results>
    <status>OK</status>
    <usage>By accessing AlchemyAPI or using information generated by AlchemyAPI, you are agreeing to be bound by the AlchemyAPI Terms of Use: http://www.alchemyapi.com/company/terms.html</usage>
    <url></url>
    <language>english</language>
    <entities>
        <entity>
            <type>Company</type>
            <relevance>0.961433</relevance>
            <count>1</count>
            <text>IBM Corp</text>
        </entity>
    </entities>
</results>
person Simon O'Doherty    schedule 24.08.2016