Google Cloud Natural Language API 是否真的支持解析 HTML?
Does the Google Cloud Natural Language API actually support parsing HTML?
我正在尝试从新闻网站和博客中提取主体内容。
文档通过将 document
和 content
作为页面的原始 [=29] =] (utf-8) 并且文档的 type
设置为 HTML
。文档肯定包含 HTML 作为受支持的内容类型。
然而,在实践中,生成的句子和标记与 HTML 标记混淆,就好像解析器认为输入是纯文本一样。就目前而言,这排除了我的用例的 GC NL API,并且可能还有许多其他用例,因为通过自然语言处理网页是一项非常常见的任务。
供参考,这里是 Dandelion API 的 example 输出类型,人们期望给定 HTML 输入(或者更确切地说,在这种情况下 URL到 HTML 页面作为输入)。
那么我的问题是,我是不是遗漏了什么,可能是 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("\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"
我正在尝试从新闻网站和博客中提取主体内容。
文档通过将 document
和 content
作为页面的原始 [=29] =] (utf-8) 并且文档的 type
设置为 HTML
。文档肯定包含 HTML 作为受支持的内容类型。
然而,在实践中,生成的句子和标记与 HTML 标记混淆,就好像解析器认为输入是纯文本一样。就目前而言,这排除了我的用例的 GC NL API,并且可能还有许多其他用例,因为通过自然语言处理网页是一项非常常见的任务。
供参考,这里是 Dandelion API 的 example 输出类型,人们期望给定 HTML 输入(或者更确切地说,在这种情况下 URL到 HTML 页面作为输入)。
那么我的问题是,我是不是遗漏了什么,可能是 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("\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"