Google Cloud Natural Language API是否真的支持解析HTML?

时间:2017-06-12 15:32:14

标签: nlp google-cloud-nl

我正试图从新闻网站中提取主体内容。博客。

通过传递documents.analyzeSyntax document作为页面的原始HTML(utf-8)和文档的文档,文档看起来似乎content可以按预期使用HTML工作type设置为HTML。文档肯定包含HTML作为受支持的内容类型。

然而,在实践中,生成的句子和标记混淆了HTML标记,就像解析器认为输入是纯文本一样。就目前而言,这为我的用例排除了GC NL API,并且可能很多其他人通过自然语言处理网页是一项非常常见的任务。

供参考,这里是蒲公英API的example输出类型,给定HTML输入(或者更确切地说是HTML页面的URL作为输入)。

我的问题是,我是否遗漏了某些内容,可能是错误地调用了API,还是NL API不支持HTML?

1 个答案:

答案 0 :(得分:1)

是的。

不确定您使用的是哪种语言,但以下是使用客户端库的python示例:

from google.cloud import language

client = language.Client()

# document of type PLAIN_TEXT
text = "hello"
document_text = client.document_from_text(text)
syntax_text = document_text.analyze_syntax()

print("\n\ndocument of type PLAIN_TEXE:")
for token in syntax_text.tokens:
    print(token.__dict__)

# document of type HTML
html = "<p>hello</p>"
document_html = client.document_from_html(html)
syntax_html = document_html.analyze_syntax()

print("\n\ndocument of type HTML:")
for token in syntax_html.tokens:
    print(token.__dict__)

# document of type PLAIN_TEXT but should be HTML
document_mismatch = client.document_from_text(html)
syntax_mismatch = document_mismatch.analyze_syntax()

print("\n\ndocument of type PLAIN_TEXT but with HTML content:")
for token in syntax_mismatch.tokens:
    print(token.__dict__)

这适用于我,因为html标记<p></p>未被处理为自然语言。

如果您完成this page上的设置步骤,则可以快速体验gcloud命令行工具:

gcloud beta ml language analyze-syntax --content="<p>hello</p>" --content-type="HTML"