0

我正在使用 edgarWebR 解析 10K (SEC EDGAR) 文件。我正在尝试编写一个算法来通过检查文档的格式来推断每个 HTML 元素是普通文本、副标题还是标题(例如,一些 10Ks 可能所有标题都以粗斜体显示,而副标题仅以斜体显示)

edgarWebR 返回一个数据框,其中每个元素对应于一行,包含文本和 html。一些html的例子:

<p style="margin-top:18px;margin-bottom:0px"><font style="font-family:ARIAL" size="2"><b><i>Our quarterly operating results have fluctuated in the past and might continue to fluctuate, causing the value of our common stock to decline substantially. </i></b></font></p>

正如我们所看到的,上面应该标记为粗体和斜体。然而,这在不同的文件中表现不同。例如,此文件用于<b>表示粗体,而有些则表示字体重量 = 粗体。

处理这个问题的最佳方法是什么?是否有一个 R 包可以解析 HTML 并告诉我它是粗体和斜体,或者返回一个标签列表,这些标签是专门格式化标签(不是 span、p 等)。

或者,我如何根据手动编译的粗体和斜体(“粗体” <b>,,强)指标列表检查每一行,并让它返回与每一行匹配的列表中的任何元素?

最后,我计划将值制成表格以确定标题级别。例如,如果我计算 100 个既没有粗体也没有斜体的元素,20 个只有 的元素<b>,以及 10 个包含<b>“斜体”的元素,我可以推断粗体和斜体代表这个特定文件的标题,而单独的粗体表示子标题。

4

1 回答 1

1

我认为您正在寻找的只是一个特定的字符串是否包含 html 标记,该标记指示该字符串中的某些内容应该是粗体和/或斜体。

S <- '<p style="margin-top:18px;margin-bottom:0px"><font style="font-family:ARIAL" size="2"><b><i>Our quarterly operating results have fluctuated in the past and might continue to fluctuate, causing the value of our common stock to decline substantially. </i></b></font></p>'
grepl("<b>|<font-weight\\s*=\\s*bold", S, ignore.case = TRUE)
# [1] TRUE
grepl("<i>|<font-style\\s*=\\s*italic", S, ignore.case = TRUE)
# [1] TRUE
于 2021-02-01T03:38:27.963 回答