spacy - 如何用 spacy 标记 html 标签?
问题描述
我需要用 spacy 标记 html 文本。或者在标记化之后合并标签。它们可以是任何 html 标签,例如:
<br> <br/> <br > <n class="ggg">
标签的文档中有一个标签合并的例子
,但它不能适用于所有类型的标签。如果我写这样的规则:
[{'ORTH': '<'}, {}, {'ORTH': '>'}]
它将加入一些标签:
<br><p>
或分开,如:
<
n
class="ggg
"
>
我也尝试编写自定义标记器,但我遇到了空格问题。
我希望每个 html 标签都是一个单独的标记,例如:
<br>
<br >
<n class="ggg">
解决方案
恕我直言,删除 HTML 标签并转换为纯文本是正确的方法,而不是使 html 标签成为“停用词”,因为其中一些标签实际上是可以出现在文本中的有效词,不应被忽略(例如,<body>
与body
)。
如果你有一个像
<span>word</span><span>word</span>
它wordword
在用户代理中呈现,实际上应该被解释为一个单词。例如,可能会给您一个 HTML 页面,其中包含以下内容:
<p><strong>S</strong>oup .... </p>
这显然呈现为 ' S oup' 并且应该被视为单词soup
而不是单词s
and oup
。
现在,如果出于某种原因您必须假定任何 HTML 标记边界是一个单词分隔符(在大多数情况下是错误的),您应该执行以下操作:使用 HTML 流标记器,例如 libxml2startElement
并characters
仅为 and 编写处理程序。前者应输出一个空格,后者应在获取字符时输出字符。这会将您的 HTML 输入转换为纯文本(就像 HTML 标记删除器会做的那样),但还会在每个元素标记后添加一个空格,因此<span>word</span><span>word</span>
将转换为:“(space)word(space)word”。当存在嵌套标签时,这可能会添加多个空格,但是当您将清理后的文本拆分为单词以进行进一步处理时,您可以轻松处理此问题。
推荐阅读
- css - 更改高度视口使其不影响布局?
- reactjs - React 远程控制台日志记录
- git - 在 Azure DevOps 项目之间移动存储库时保留拉取请求
- r - 从嵌套的模型列表中创建显示 AICc 值的数据框列表
- html - 相对于 div 内的某个数值的 div 高度
- batch-file - 从批处理中修改 PATH 变量
- html - 在 number_field_tag 中动态命名 ID
- javascript - 如何上传已预览的图像
- mysql - PHP MySQL INSERT ON DUPLICATE KEY UPDATE 不起作用
- r - 如何清理 R 中的一些时间范围并使它们更有意义?