将本地 HTML 文件读入 R 以进行数据提取
Reading local HTML files into R for data extraction
我在一个文件夹中有一组本地 html 文件。使用下面的代码我可以导入数据。下一步我想合并几个文件(都具有相同的格式),将数据和内容提取为表格格式以供进一步分析
source <- FactivaSource("page1.html")
corpus <- Corpus(source, readerControl = list(language = NA))
inspect(corpus)
meta(corpus[[1]])
将语料库转换为数据框的最简单方法是使用 tidytext::tidy
,例如:
library(tm)
library(tidytext)
data("crude") # crude dataset is from `tm` package
tidy(crude)
一旦你将所有的语料库变成数据框,你就可以以任何有意义的方式组合它们——也就是说,我会把语料库变成数据框,然后合并它们,而不是反过来(虽然这可能是也可以)。
输出:
> tidytext::tidy(crude)
# A tibble: 20 x 16
author datetimestamp description heading id language origin topics lewissplit
<chr> <dttm> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 NA 1987-02-26 18:00:56 "" DIAMON… 127 en Reute… YES TRAIN
2 BY TE… 1987-02-26 18:34:11 "" OPEC M… 144 en Reute… YES TRAIN
3 NA 1987-02-26 19:18:00 "" TEXACO… 191 en Reute… YES TRAIN
4 NA 1987-02-26 19:21:01 "" MARATH… 194 en Reute… YES TRAIN
5 NA 1987-02-26 20:00:57 "" HOUSTO… 211 en Reute… YES TRAIN
6 NA 1987-03-01 04:25:46 "" KUWAIT… 236 en Reute… YES TRAIN
7 By Je… 1987-03-01 04:39:14 "" INDONE… 237 en Reute… YES TRAIN
8 NA 1987-03-01 06:27:27 "" SAUDI … 242 en Reute… YES TRAIN
9 NA 1987-03-01 09:22:30 "" QATAR … 246 en Reute… YES TRAIN
10 NA 1987-03-01 19:31:44 "" SAUDI … 248 en Reute… YES TRAIN
11 NA 1987-03-02 02:05:49 "" SAUDI … 273 en Reute… YES TRAIN
12 NA 1987-03-02 08:39:23 "" GULF A… 349 en Reute… YES TRAIN
13 NA 1987-03-02 08:43:22 "" SAUDI … 352 en Reute… YES TRAIN
14 NA 1987-03-02 08:43:41 "" KUWAIT… 353 en Reute… YES TRAIN
15 NA 1987-03-02 09:25:42 "" PHILAD… 368 en Reute… YES TRAIN
16 NA 1987-03-02 12:20:05 "" STUDY … 489 en Reute… YES TRAIN
17 NA 1987-03-02 12:28:26 "" STUDY … 502 en Reute… YES TRAIN
18 NA 1987-03-02 13:13:46 "" UNOCAL… 543 en Reute… YES TRAIN
19 By BE… 1987-03-02 15:38:34 "" NYMEX … 704 en Reute… YES TRAIN
20 NA 1987-03-02 15:49:06 "" ARGENT… 708 en Reute… YES TRAIN
# … with 7 more variables: cgisplit <chr>, oldid <chr>, places <named list>, people <chr>,
# orgs <chr>, exchanges <chr>, text <chr>
我在一个文件夹中有一组本地 html 文件。使用下面的代码我可以导入数据。下一步我想合并几个文件(都具有相同的格式),将数据和内容提取为表格格式以供进一步分析
source <- FactivaSource("page1.html")
corpus <- Corpus(source, readerControl = list(language = NA))
inspect(corpus)
meta(corpus[[1]])
将语料库转换为数据框的最简单方法是使用 tidytext::tidy
,例如:
library(tm)
library(tidytext)
data("crude") # crude dataset is from `tm` package
tidy(crude)
一旦你将所有的语料库变成数据框,你就可以以任何有意义的方式组合它们——也就是说,我会把语料库变成数据框,然后合并它们,而不是反过来(虽然这可能是也可以)。
输出:
> tidytext::tidy(crude)
# A tibble: 20 x 16
author datetimestamp description heading id language origin topics lewissplit
<chr> <dttm> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 NA 1987-02-26 18:00:56 "" DIAMON… 127 en Reute… YES TRAIN
2 BY TE… 1987-02-26 18:34:11 "" OPEC M… 144 en Reute… YES TRAIN
3 NA 1987-02-26 19:18:00 "" TEXACO… 191 en Reute… YES TRAIN
4 NA 1987-02-26 19:21:01 "" MARATH… 194 en Reute… YES TRAIN
5 NA 1987-02-26 20:00:57 "" HOUSTO… 211 en Reute… YES TRAIN
6 NA 1987-03-01 04:25:46 "" KUWAIT… 236 en Reute… YES TRAIN
7 By Je… 1987-03-01 04:39:14 "" INDONE… 237 en Reute… YES TRAIN
8 NA 1987-03-01 06:27:27 "" SAUDI … 242 en Reute… YES TRAIN
9 NA 1987-03-01 09:22:30 "" QATAR … 246 en Reute… YES TRAIN
10 NA 1987-03-01 19:31:44 "" SAUDI … 248 en Reute… YES TRAIN
11 NA 1987-03-02 02:05:49 "" SAUDI … 273 en Reute… YES TRAIN
12 NA 1987-03-02 08:39:23 "" GULF A… 349 en Reute… YES TRAIN
13 NA 1987-03-02 08:43:22 "" SAUDI … 352 en Reute… YES TRAIN
14 NA 1987-03-02 08:43:41 "" KUWAIT… 353 en Reute… YES TRAIN
15 NA 1987-03-02 09:25:42 "" PHILAD… 368 en Reute… YES TRAIN
16 NA 1987-03-02 12:20:05 "" STUDY … 489 en Reute… YES TRAIN
17 NA 1987-03-02 12:28:26 "" STUDY … 502 en Reute… YES TRAIN
18 NA 1987-03-02 13:13:46 "" UNOCAL… 543 en Reute… YES TRAIN
19 By BE… 1987-03-02 15:38:34 "" NYMEX … 704 en Reute… YES TRAIN
20 NA 1987-03-02 15:49:06 "" ARGENT… 708 en Reute… YES TRAIN
# … with 7 more variables: cgisplit <chr>, oldid <chr>, places <named list>, people <chr>,
# orgs <chr>, exchanges <chr>, text <chr>