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



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

这些文档使documents.analyzeSyntax看起来好像可以按预期使用 HTML 工作,方法是将content作为页面的原始 HTML (utf-8( 传递document,并将文档的type设置为 HTML 。文档肯定包含 HTML 作为支持的内容类型。

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

作为参考,以下是蒲公英 API 的一个示例,其中包含给定 HTML 输入的输出类型(或者更确切地说,在这种情况下是指向 HTML 页面的 URL 作为输入(。

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

是的,确实如此。

不确定您使用的语言,但下面是使用客户端库的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("nndocument 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("nndocument 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("nndocument of type PLAIN_TEXT but with HTML content:")
for token in syntax_mismatch.tokens:
    print(token.__dict__)

这对我有用,因为 html 标签<p></p>不会作为自然语言处理。

如果您完成此页面上的设置步骤,则可以快速尝试使用 gcloud 命令行工具:

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

相关内容

  • 没有找到相关文章

最新更新