Nlp 谷歌云自然语言API真的支持解析HTML吗?

Nlp 谷歌云自然语言API真的支持解析HTML吗?,nlp,google-cloud-nl,Nlp,Google Cloud Nl,我试图从新闻网站和博客中提取主体内容 这些文档使它看起来像是文档。analyzeSyntax通过传递文档,将内容作为页面的原始HTML(utf-8)和文档的类型设置为HTML,与HTML一样工作。这些文档肯定包含HTML作为受支持的内容类型 然而,在实践中,结果语句和标记被HTML标记弄乱了,就好像解析器认为输入是纯文本一样。目前,这排除了我的用例中的GC-NL-API,也可能排除了其他许多用例中的GC-NL-API,因为通过自然语言处理web页面是一项非常常见的任务 作为参考,这里有一个蒲公英

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

这些文档使它看起来像是
文档。analyzeSyntax
通过传递
文档
,将
内容
作为页面的原始HTML(utf-8)和文档的
类型
设置为
HTML
,与HTML一样工作。这些文档肯定包含HTML作为受支持的内容类型

然而,在实践中,结果语句和标记被HTML标记弄乱了,就好像解析器认为输入是纯文本一样。目前,这排除了我的用例中的GC-NL-API,也可能排除了其他许多用例中的GC-NL-API,因为通过自然语言处理web页面是一项非常常见的任务

作为参考,这里有一个蒲公英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("\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__)
来自google.cloud导入语言
client=language.client()
#纯文本类型的文档
text=“你好”
document_text=客户端。document_from_text(text)
语法\文本=文档\文本。分析\语法()
打印(“\n\n纯文本类型的文档:”)
对于syntax_text.tokens中的令牌:
打印(令牌.\uuuu命令\uuuuu)
#HTML类型的文档
html=“你好

” document\u html=客户端。document\u from\u html(html) syntax\u html=document\u html.analyze\u syntax() 打印(“\n\n HTML类型的文档:”) 对于syntax_html.tokens中的令牌: 打印(令牌.\uuuu命令\uuuuu) #纯文本类型的文档,但应为HTML document\u mismatch=客户端。document\u from\u文本(html) 语法不匹配=文档不匹配。分析语法() 打印(“\n\n纯文本类型但包含HTML内容的文档:”) 对于syntax_.tokens中的令牌: 打印(令牌.\uuuu命令\uuuuu)
这对我来说很有用,因为html标记

不是作为自然语言处理的

如果您完成了上的设置步骤,您可以快速试用
gcloud
命令行工具:

gcloud beta-ml语言分析语法--content=“hello

”--content type=“HTML”