app定制开发网站建设移动商城积分兑换商城官网

当前位置: 首页 > news >正文

app定制开发网站建设,移动商城积分兑换商城官网,免费看黄金的软件,private messages for wordpresstm包#xff08;Text Mining Package#xff09;是R语言中用于文本挖掘的强大工具包#xff0c;它提供了一系列的功能来处理和分析文本数据。偶然看到这个包#xff0c;我们一起看看其中的基本功能#xff1a; 数据载入#xff1a;tm包支持从多种数据源载入文本数据…tm包Text Mining Package是R语言中用于文本挖掘的强大工具包它提供了一系列的功能来处理和分析文本数据。偶然看到这个包我们一起看看其中的基本功能 数据载入tm包支持从多种数据源载入文本数据包括本地文件、数据库、网络资源等。 语料库处理tm包的核心概念之一是语料库Corpus它代表了一系列文档的集合。用户可以通过Corpus()或VCorpus()函数创建动态或静态语料库。 数据预处理tm包提供了丰富的数据预处理功能包括文本清洗、分词、去除停用词、词干提取、词形还原等。 元数据管理tm包允许用户管理和访问文档的元数据这些元数据可以用于进一步的分析和分类。 文档-词条矩阵tm包支持创建文档-词条矩阵Document-Term Matrix, DTM这是一种常用的数据结构用于表示文本数据中的文档和词条之间的关系。 目录 1.文本挖掘 2.tm包安装

  1. acq、crude数据集 4.content_transformer、tm_map函数模式筛选 5.语料库Corpora 6.DataframeSource函数创建语料库 7.DirSource函数创建目录源 8.Docs等函数处理词项矩阵 词项 9.findAssocs函数寻找词项关联

  2. findFreqTerms函数寻找频繁出现的词项 11.findMostFreqTerms函数 寻找最频繁词项 12.读取稀释矩阵 13.分词器与预定义文本转换方法 14.高性能计算-hpc

  3. inspect函数检查 16.meta函数meta类操作 17.PCorpus创建永久语料库 1.文本挖掘 文本挖掘也称为文本数据挖掘是指从大量文本数据中抽取事先未知的、可理解的、最终可用的知识的过程。它涉及将非结构化文本转换为结构化格式以便发现有意义的模式和全新洞察。文本挖掘通常包括以下几个主要任务 文本分类将文本分配到预定义的类别中这通常是一个有监督的学习过程。文本聚类将文本分组到不同的簇中这是一个无监督的学习过程。信息抽取从文本中提取特定的信息片段如命名实体识别、关系抽取等。情感分析确定文本的情感倾向如正面、负面或中性。文本摘要生成文本的简短摘要保留关键信息。 文本挖掘是一个多学科交叉的领域它结合了数据挖掘技术、信息抽取、信息检索、机器学习、自然语言处理、计算语言学、统计数据分析等多种技术。 2.tm包安装 首先进行tm 包安装由于是新包镜像等比较慢因此推荐手动安装相关包安装问题可以看之前的博客文章 一站式解决R包安装的各种方法及常见问题Bioconductor、github、手动安装等-CSDN博客 #普通安装 install.packages™ #手动安装 download.file(https://cran.r-project.org/src/contrib/tm_0.7-14.tar.gz,tm_0.7-14.tar.gz) install.packages(tm_0.7-14.tar.gz,repos NULL)

  4. acq、crude数据集 1acq 这个数据集包含50篇新闻文章及其附加的元信息这些文章来源于著名的Reuters-21578数据集。所有文档都属于“acq”主题即涉及公司收购的内容。它是一个包含50篇文本文档的语料库AVCorpus。其来源是Reuters-21578文本分类集合分发版1.0采用XML格式。 2crude crude 是一个包含20篇文本文档的VCorpus对象。 该数据集来源于Reuters-21578文本分类集合分发版1.0XML格式。 library™ data(acq) acq data(crude)crude 4.content_transformer、tm_map函数模式筛选 以一个例子学习内容转换器函数 data(crude) #查看第一篇文章 crude[1] new - tm_map(crude,f,[[:digit:]])[[1]] new as.character(crude[[1]]) as.character(new) 函数内部定义了一个匿名函数该函数接受两个参数x要处理的文本和pattern要匹配的模式。使用gsub函数将文本中符合模式的部分替换为空字符串即删除这些部分。这里的模式[[:digit:]]是一个正则表达式匹配一个或多个数字字符。 在使用crude[[1]]命令的时候我们能发现控制台的返回小白看不懂我们进行简单解释 PlainTextDocument 是一个 R 语言中的 S3 对象属于文本挖掘或自然语言处理领域的一个特定类。这种对象通常用来存储和处理纯文本数据其中包含文本内容以及与之相关的元数据Metadata。 crude[[1]] 就是访问该列表中的第一个 PlainTextDocument 对象。这个对象可能包含一段文本内容和它的元数据元数据的长度为 1515个不同的元)而内容部分包含 527 个字符。 我们发现函数将原本内容中的数字内容都去除了。 我们再通过一个例子来加深理解 documents - c(Hello name, how are you?, I am name, nice to meet you.)

    创建一个Corpus对象

    corpus - Corpus(VectorSource(documents))

    创建一个content_transformer它将name替换为实际的名称

    replace_name - content_transformer(function(x,Name){gsub(name,Name,x) }) processed - tm_map(corpus,replace_name,david)

    打印处理后的文档

    print(sapply(processed, as.character)) 5.语料库Corpora 在自然语言处理和文本挖掘领域语料库Corpora是一个重要的概念它指的是包含自然语言文本的文档集合。在R语言的tm包中语料库通过虚拟S3类Corpus来表示而其他扩展包则提供继承自这个基础类的S3语料库类例如tm包自身提供的VCorpus类。 语料库类必须提供访问器以提取子集[]、单个文档[[]]以及元数据meta。函数length用于返回文档的数量as.list则构造一个持有文档的列表。 语料库可以有两种类型的元数据均可通过meta访问 1语料库元数据包含特定于语料库的元数据形式为标签-值对。 2文档级元数据包含特定于文档的元数据但在语料库中以数据框的形式存储。文档级元数据通常出于语义原因例如由于某些高级信息如可能值的范围文档分类形成独立实体或性能原因单次访问而非提取每个文档的元数据使用。 此外tm包还提供了其他几种语料库类SimpleCorpus一种简单的语料库类。VCorpustm包提供的另一种语料库类。PCorpustm包提供的另一种语料库类。DCorpus由tm.plugin.dc包提供的一种分布式语料库类。 6.DataframeSource函数创建语料库 DataframeSource 函数允许用户创建一个数据源对象该对象将数据框data frame中的每一行视为一个文档。这个功能特别适用于那些已经拥有或生成了包含文档内容和元数据的结构化数据集的场景。 使用说明 当你调用 DataframeSource(x) 时你需要提供一个名为 x 的数据框作为参数。这个数据框必须满足以下条件 第一列必须命名为 doc_id包含每个文档的唯一字符串标识符。 第二列必须命名为 text包含代表文档内容的 UTF-8 编码的字符串。 可以选择性地添加额外的列这些列将被用作文档元数据。 返回值 DataframeSource 函数返回一个对象该对象继承自 DataframeSource、SimpleSource 和 Source 类。这意味着返回的对象不仅包含了数据框源的特性还具备了简单源和源对象的基本属性和方法便于后续进行文本处理和分析。 相关函数 Source提供关于 tm 包所使用的源基础设施的基本信息。meta用于处理不同类型的元数据。readtext用于读取多种格式的文本文件使其适合被 DataframeSource 处理。 以下是一个简单的例子展示了如何创建一个 DataframeSource 对象并用它来构建一个语料库Corpus

    创建一个包含文档 ID、文本内容以及一些元数据的数据框

    docs - data.frame(doc_id c(doc_1, doc_2),text c(This is a text., This another one.),dmeta1 1:2,dmeta2 letters[1:2],stringsAsFactors FALSE )# 使用 DataframeSource 创建数据源对象 ds - DataframeSource(docs)# 利用数据源对象创建语料库 x - Corpus(ds)# 检查语料库的内容 inspect(x)# 查看语料库的元数据 meta(x) 我们通过一个更复杂的例子进行理解 #创建DF docs - data.frame(doc_id c(doc_1, doc_2, doc_3),title c(R语言简介, 文本挖掘技术, 数据科学应用),text c(R语言是一种统计计算和图形的环境…的语言, 文本挖掘是从大量文本数据中提取有用信息的过程…,数据科学是一门多学科领域它使用科学方法、过程、算法和系统…),author c(张三, 李四, 王五),date as.Date(c(2023-01-01, 2023-02-15, 2023-03-20)),stringsAsFactors FALSE )# 使用DataframeSource创建数据源对象 ds - DataframeSource(docs)# 创建语料库 corpus - Corpus(ds)# 查看语料库中的文档 inspect(corpus)# 对语料库中的文本进行预处理

    例如去除标点符号、数字、停用词等

    corpus - tm_map(corpus, removePunctuation) corpus - tm_map(corpus, removeNumbers) corpus - tm_map(corpus, removeWords, stopwords(en))# 创建文档-词项矩阵 dtm - DocumentTermMatrix(corpus)# 查看文档-词项矩阵 inspect(dtm)DocumentTermMatrix (documents: 3, terms: 3) 表示这个文档-词项矩阵DTM包含了3个文档和3个术语。接下来的一些描述性统计信息提供了矩阵的更多细节Non-/sparse entries: 3/6 指出矩阵中有3个非零元素和6个稀疏即零元素。Sparsity : 67% 表明矩阵的稀疏度为67%意味着大多数的词项-文档交叉点是空的这在文本数据中是很常见的因为一个特定的词项往往不会出现在所有文档中。Maximal term length: 29 指的是矩阵中最长的术语长度为29个字符。Weighting : term frequency (tf) 说明矩阵使用的是词频term frequency, tf权重即每个单元格中的数值代表了相应术语在对应文档中出现的次数。 7.DirSource函数创建目录源 DirSource是一个函数通常用于创建一个目录源Directory Source。它允许用户指定一个目录并从该目录中读取文件作为文档进行处理。以下是DirSource函数的参数及其描述directory一个字符向量包含完整的路径名默认值对应于工作目录通过getwd()获得。encoding一个字符串描述当前的编码。这个参数被传递给iconv来将输入转换为UTF-8编码。pattern一个可选的正则表达式。只有匹配该正则表达式的文件名会被返回。recursive逻辑值。是否应该递归地列出子目录中的文件ignore.case逻辑值。模式匹配是否应该是大小写不敏感的mode一个字符串指定文件应该如何被读取。可用的模式有不读取。在这种情况下getElem和pGetElem只返回URI。binary以二进制原始模式读取文件通过readBin。text以文本形式读取文件通过readLines。 使用DirSource时它会获取通过dir命令获得的文件列表并将每个文件解释为一个文档。返回值是一个对象它继承自DirSource、SimpleSource和Source类。 例如以下代码会创建一个指向tm包中texts/txt目录的DirSource DirSource(system.file(texts, txt, package tm)) \(encoding属性表示这些文本文件的编码方式 \)length属性显示该目录中有5个文件 \(position属性是用来追踪当前读取位置的初始值为0。 \)reader属性是一个函数它定义了如何从源中读取文件并将其转换为PlainTextDocument对象。如果元素有URI它会使用URI的基本名称作为文档ID。 \(mode属性指示这个源是用于文本文件的。 \)filelist属性列出了目录中的所有文件路径。 最后显示了DirSource对象的类属性表明它是DirSource、SimpleSource和Source类的实例。 # 假设我们有一个包含多种类型文件的目录路径 my_directory - C:/Users/Huzhuocheng/Documentsdirectory_source DirSource(directorymy_directory, # 指定要读取的目录路径encodingutf-8, # 指定文件的编码格式pattern*.txt, # 使用正则表达式匹配文件名modetext # 指定文件的处理模式 ) directory_source 8.Docs等函数处理词项矩阵 Docs(x): 这个函数用于获取文档-词项矩阵或词项-文档矩阵中的文档ID。参数x是矩阵对象返回值是一个包含文档ID的字符向量。nDocs(x): 这个函数用于获取矩阵中文档的数量。参数x同样是矩阵对象返回值是一个整数表示文档的数量。nTerms(x): 这个函数用于获取矩阵中词项的数量。参数x是矩阵对象返回值是一个整数表示词项的数量。Terms(x): 这个函数用于获取词项-文档矩阵或文档-词项矩阵中的词项。参数x是矩阵对象返回值是一个包含词项的字符向量。 示例代码展示了如何创建一个词项-文档矩阵的子集并使用上述函数获取相关信息 data(crude) # 加载示例数据 tdm - TermDocumentMatrix(crude)[1:10,1:20] # 创建词项-文档矩阵的子集# 获取文档ID Docs(tdm)# 获取文档数量 nDocs(tdm)# 获取词项数量 nTerms(tdm)# 获取词项 Terms(tdm)词项 词项Term在信息检索、文本挖掘和自然语言处理等领域中通常指的是构成文本的基本单位它可以是单词、短语或其他有意义的词汇片段。词项是构建索引、执行搜索和分析文本内容的基础元素。 在构建词项-文档矩阵Term-Document Matrix或文档-词项矩阵Document-Term Matrix时词项作为矩阵的一维代表文档集合中出现的所有不同的词汇。每个词项与文档之间的关联通过矩阵中的数值来表示如词频Term Frequency或逆文档频率Inverse Document Frequency等统计量从而揭示词项在文档集合中的分布情况和重要性。 例如在处理一组文档时首先会对文档进行分词处理将连续的文本流切分成一个个独立的词项。随后这些词项会被用来构建矩阵其中每一行对应一个词项每一列对应一个文档矩阵中的每个元素则表示该词项在对应文档中出现的次数或权重。 让我们通过一个简单的例子来更好地理解词项Term的概念。 假设我们有一组关于动物的小型文档集合包含以下三个文档 文档1D1: 猫喜欢追逐老鼠。 文档2D2: 狗经常吠叫。 文档3D3: 猫和狗都是宠物。 首先我们对这组文档进行分词处理将每个文档分解成单独的词项 文档1的词项: [猫, 喜欢, 追逐, 老鼠] 文档2的词项: [狗, 经常, 吠叫] 文档3的词项: [猫, 和, 狗, 都, 是, 宠物] 接下来我们可以构建一个词项-文档矩阵如下所示 9.findAssocs函数寻找词项关联 findAssocs 是一个用于在文档-词项或词项-文档矩阵中寻找关联的函数它属于文本挖掘领域中的常用工具。该函数主要用于分析词项之间的相关性并能够根据指定的相关性阈值来筛选出强相关的词项对。 描述 findAssocs 函数通过计算词项之间的相关性帮助用户发现文档集合中词项之间的潜在联系。这对于理解文档的主题、进行关键词提取或者构建词项间的关联网络等任务非常有用。用法 findAssocs 函数有两种S3方法分别适用于 DocumentTermMatrix 和 TermDocumentMatrix 类对象

    S3 method for class DocumentTermMatrix

    findAssocs(x, terms, corlimit)## S3 method for class TermDocumentMatrix findAssocs(x, terms, corlimit) 参数x: 一个 DocumentTermMatrix 或 TermDocumentMatrix 对象包含了文档集合的词项频率信息。terms: 一个字符向量包含了用户希望查找其关联词项的目标词项。corlimit: 一个数值向量指定了每个目标词项的相关性下限包含范围从0到1。如果 corlimit 的长度与 terms 不同则会被循环使用。返回值 findAssocs 返回一个命名列表其中每个列表组件以 terms 中的一个词项命名并包含一个命名的数值向量。这个向量持有来自 x 的匹配词项及其满足 corlimit 下限的相关性值经过四舍五入。示例 以下是一个使用 findAssocs 函数的例子 data(crude) # 加载示例数据集 tdm - TermDocumentMatrix(crude) # 创建词项-文档矩阵

    查找与oil, opec, xyz这些词项相关且相关性至少为0.7, 0.75, 0.1的词项

    findAssocs(tdm, c(oil, opec, xyz), c(0.7, 0.75, 0.1)) 10. findFreqTerms函数寻找频繁出现的词项 该函数的目的是从给定的矩阵中找出频繁出现的词项即那些出现频率在指定范围内的词项。 使用方法 findFreqTerms(x, lowfreq 0, highfreq Inf) x一个DocumentTermMatrix或TermDocumentMatrix对象包含了文档和词项之间的关联信息。lowfreq一个数值参数表示词项出现的最低频率界限。默认值为0意味着不考虑频率的下限。highfreq一个数值参数表示词项出现的最高频率界限。默认值为无穷大Inf意味着不考虑频率的上限。 此方法适用于所有数值权重但对于标准的词频term frequency简称tf权重来说可能最有意义。词频权重是指某个词项在文档中出现的次数它是文本挖掘中常用的一个度量标准。 data(crude) # 加载示例数据集 tdm - TermDocumentMatrix(crude) # 创建词项-文档矩阵

    查找与oil, opec, xyz这些词项相关且相关性至少为0.7, 0.75, 0.1的词项

    findAssocs(tdm, c(oil, opec, xyz), c(0.7, 0.75, 0.1)) 11.findMostFreqTerms函数 寻找最频繁词项 findMostFreqTerms 函数用于在一个文档-词项或词项-文档矩阵中或者一个词频向量中找到最频繁出现的词项。这个函数可以根据不同的输入类型如DocumentTermMatrix、TermDocumentMatrix或词频向量采用不同的方法来执行。 使用方法 findMostFreqTerms(x, n 6L, INDEX NULL, …) x可以是DocumentTermMatrix、TermDocumentMatrix对象或者是通过termFreq()获得的词频向量。n一个整数指定返回的最频繁词项的最大数量默认为6。INDEX一个指定文档分组的对象用于汇总如果为NULL默认则每个文档被单独考虑。 …传递给方法的额外参数。 只有具有正频率的词项会被包括在结果中。 data(crude)## 词频 tf - termFreq(crude[[14L]]) findMostFreqTerms(tf)## 文档-词项矩阵 dtm - DocumentTermMatrix(crude)## 每个文档中最频繁的词项 findMostFreqTerms(dtm)## 前10个和后10个文档中最频繁的词项 findMostFreqTerms(dtm, INDEX rep(1 : 2, each 10L)) 12.读取稀释矩阵 read_dtm_Blei_et_al 和 read_dtm_MC 是两个用于读取存储在特殊文件格式中的文档-词项矩阵的函数。这些函数通常用于处理由特定软件包生成的稀疏矩阵数据。1read_dtm_Blei_et_al 用途读取由Blei等人开发的潜在狄利克雷分配LDA和相关主题模型C代码使用的列表中的列表类型稀疏矩阵格式。 参数file要读取的文件名。 vocab词汇表文件名每行给出一个术语或者为NULL。 详情该函数读取由Blei等人开发的LDA和CTM模型使用的特定格式的稀疏矩阵。2read_dtm_MC 用途读取由MC工具包创建的稀疏矩阵信息该工具包用于从文本文档创建向量模型。 参数file提供基础文件名的路径。 scalingtype指定使用的缩放类型的字符串或者为NULL默认在这种情况下缩放将从具有非零条目的文件的名称推断出来。 详情MC工具包使用压缩列存储CCS稀疏矩阵格式的变体将数据写入具有适当名称的多个文件中。非零条目存储在文件中其名称表明了使用的缩放类型。例如_tfx_nz 表示按词频t、逆文档频率f和无归一化x进行缩放。有关更多信息请参阅MC源代码中的README。返回值 这两个函数都返回一个文档-词项矩阵。 13.分词器与预定义文本转换方法 1getTokenizers() 函数是 R 语言中 tm 包提供的一个函数用于获取该包提供的预定义分词器tokenizers列表。 getTokenizers() 当你运行上述代码时它将列出 tm 包中可用的所有分词器。分词器是在文本挖掘过程中用于将文本分割成单词或短语的工具这对于后续的文本分析至关重要。 参见Boost_tokenizer基于 Boost 库的分词器。MC_tokenizer基于 MC 工具包的分词器。scan_tokenizer基于 R 语言内置 scan 函数的分词器。 2getTransformations() 函数用于获取该包提供的预定义文本转换方法列表。这些方法通常用于文本预处理以便于后续的文本分析或挖掘工作。 这些转换方法可以用于 tm_map 函数以对文本数据进行各种转换处理。 例如removeNumbers 用于删除文本中的数字removePunctuation 用于删除标点符号removeWords 可以删除指定的单词stemDocument 用于将单词还原为其词干形式而 stripWhitespace 则用于去除多余的空白字符。 此外如果你需要创建自定义的转换方法可以使用 content_transformer 函数。

    获取预定义的转换方法列表

    available_transformations - getTransformations() print(available_transformations) removeNumbers: 这个方法的作用是从文本中移除所有的数字字符。在处理自然语言文本时数字往往不携带与主题直接相关的信息因此去除它们可以减少噪声并可能帮助改善后续文本分析任务的效果如情感分析、主题建模等。 removePunctuation: 此方法旨在从文本中删除所有的标点符号。标点符号虽然对于书面语言的语法结构至关重要但在许多文本分析任务中它们并不包含对理解文本内容有实质性帮助的信息。去除标点符号有助于统一词汇的格式简化分析过程。 removeWords: 这是一种更灵活的方法允许用户指定要从文本中删除的单词或短语。这可以用于去除停用词stop words即那些在文本中频繁出现但通常不承载重要意义的词汇如“the”、“is”、“in”等。通过移除这些词汇可以减少数据的维度同时聚焦于更有意义的词汇。 stemDocument: 这个方法将文本中的词汇还原到它们的词干形式。词干提取是一种常见的文本规范化技术目的是将词汇的不同形态如动词的各种时态、名词的单复数等统一为一个基本形式。这样做可以减少词汇的多样性从而简化模型并提高某些文本分析任务的性能。 stripWhitespace: 该方法的功能是去除文本中的多余空白字符包括空格、制表符、换行符等。清理空白字符有助于标准化文本数据确保在进行诸如词频统计、文本向量化等操作时的准确性。 14.高性能计算-hpc hpc 是一个用于高性能计算的R包它提供了一系列函数来支持并行计算从而加速数据处理和分析任务。其中tm_parLapply 和 tm_parLapply_engine 是两个关键的函数它们允许用户根据注册的并行化引擎对列表或向量应用函数。功能描述 tm_parLapply 函数旨在并行化地应用一个函数到一个列表或向量的每个元素上。这种并行化可以显著提高执行效率尤其是在处理大量数据时。 使用方法tm_parLapply(X, FUN, …): 这个函数接受三个主要参数 X一个原子向量、列表或其他适合当前并行化引擎的对象。 FUN将要应用到X的每个元素上的函数。 …传递给FUN的可选参数。tm_parLapply_engine(new): 这个函数用于获取无参数或设置带new参数使用的并行化引擎。new可以是makeCluster()创建的类cluster对象或者是带有形式参数X、FUN和…的函数或者是NULL后者表示不使用并行化引擎。细节说明 在tm包中一些易于并行的计算可以通过使用tm_parLapply和tm_parLapply_engine来自定义并行化以充分利用可用资源。 如果设置了继承自类cluster的对象作为引擎tm_parLapply将调用parLapply()函数并将该集群和给定的参数传递给它。如果设置为函数则tm_parLapply将用给定的参数调用该函数。否则它将简单地调用lapply()。示例 为了通过parLapply()实现并行化可以使用以下方式注册默认集群 tm_parLapply_engine(function(X, FUN, …) parallel::parLapply(NULL, X, FUN, …)) 或者重新注册集群例如名为cl的集群 tm_parLapply_engine(cl) 要实现负载平衡的并行化可以使用parLapplyLB()与注册的默认集群或给定集群 tm_parLapply_engine(function(X, FUN, …) parallel::parLapplyLB(NULL, X, FUN, …)) 或者 tm_parLapply_engine(function(X, FUN, …) parallel::parLapplyLB(cl, X, FUN, …)) 要在Unix类平台上通过fork实现并行化可以使用makeForkCluster()创建的集群或者使用mclapply() tm_parLapply_engine(parallel::mclapply) 或者: tm_parLapply_engine(function(X, FUN, …) parallel::mclapply(X, FUN, …, mc.cores n)) 我们通过一个例子来看一下 documents - list(doc1 This is the first document.,doc2 This document is the second document.,doc3 And this is the third one.# … 假设有更多的文档 ) library™ stem_text - function(x) {stemDocument(x, language english) } #现在我们可以使用tm_parLapply来并行地对每篇文档应用stem_text函数

    假设我们已经有了一个名为cl的并行计算集群

    cl - makeCluster(detectCores() - 1) # 创建一个使用除主核外所有核心的集群# 设置并行引擎为我们的集群

    tm_parLapply_engine(cl)# 并行处理文档

    stemmed_documents - tm_parLapply(documents, stem_text)# 关闭集群

    stopCluster(cl)

  5. inspect函数检查 inspect 是一个在文本分析中常用的函数主要用于显示语料库corpus、词条-文档矩阵term-document matrix或文本文档text document的详细信息。这个函数的目的是帮助用户更好地理解和检查他们的文本数据结构。 使用方法 inspect 函数根据不同的类有不同的方法具体包括 对于 PCorpus 类的对象使用 inspect(x) 来查看其细节。 对于 VCorpus 类的对象同样使用 inspect(x)。 对于 TermDocumentMatrix 类的对象也是通过 inspect(x) 来展示信息。 对于 TextDocument 类的对象使用 inspect(x) 来查看单个文档的细节。 data(crude) # 加载示例数据集 inspect(crude[1:3]) # 检查语料库中的前三个文档 inspect(crude[[1]]) # 检查语料库中的第一个文档 tdm - TermDocumentMatrix(crude)[1:10, 1:10] # 创建一个词条-文档矩阵 inspect(tdm) # 检查词条-文档矩阵 16.meta函数meta类操作 meta 是一个用于访问和修改文本文档和语料库元数据的函数。它有多种不同的方法适用于不同类型的对象如 PCorpus, SimpleCorpus, VCorpus, PlainTextDocument, 和 XMLTextDocument。这些方法允许用户获取或设置特定的元数据标签tag或者获取所有可用的元数据。 DublinCore 是一个方便的包装器用于使用简单的都柏林核心模式支持来自都柏林核心元数据元素集的15个元数据元素来访问和修改文本文档的元数据。 元数据可以分为三种类型 corpus包含特定于语料库的元数据以标签-值对的形式存储。 indexed包含特定于文档的元数据但以数据框的形式存储在语料库中。这种元数据通常用于语义原因例如文档分类形成一个独立的实体因为有一些高级信息如可能值的范围或性能原因单次访问而不是提取每个文档的元数据。这可以看作是一种索引形式因此得名“indexed”。 local直接存储在各个文档中的标签-值对形式的文档元数据。 data(crude)# 获取 crude 语料库中第一个文档的所有元数据。 meta(crude[[1]])# 获取 crude 语料库中第一个文档的都柏林核心元数据。 DublinCore(crude[[1]])# 获取 crude 语料库中第一个文档的 topics 元数据。 meta(crude[[1]], tag topics)# 设置 crude 语料库中第一个文档的 comment 元数据为 A short comment.。 meta(crude[[1]], tag comment) - A short comment.# 删除 crude 语料库中第一个文档的 topics 元数据。 meta(crude[[1]], tag topics) - NULL# 设置 crude 语料库中第一个文档的 creator 元数据为 Ano Nymous。 DublinCore(crude[[1]], tag creator) - Ano Nymous# 设置 crude 语料库中第一个文档的 format 元数据为 XML。 DublinCore(crude[[1]], tag format) - XML# 获取 crude 语料库中第一个文档的都柏林核心元数据以查看所做的更改。 DublinCore(crude[[1]])# 获取 crude 语料库中第一个文档的所有元数据以查看所做的更改。 meta(crude[[1]])# 获取整个 crude 语料库的所有元数据。 meta(crude)# 获取整个 crude 语料库的语料库级别元数据。 meta(crude, type corpus)# 设置整个 crude 语料库的 labels 元数据为从 21 到 40 的序列。 meta(crude, labels) - 21:40# 获取整个 crude 语料库的所有元数据以查看所做的更改。 meta(crude)17.PCorpus创建永久语料库 参数 x: 一个 ASource 对象代表要读取的文本数据源。 readerControl: 一个命名列表包含从 x 读取内容的控制参数。 reader: 一个函数能够读取并处理 x 提供的格式。 language: 一个字符表示文档的语言最好使用 IETF 语言标签例如 en 表示英语。默认语言假设为英语。 dbControl: 一个命名列表包含底层数据库存储的控制参数。dbName: 一个字符指定数据库文件的名称。 dbType: 一个字符指定数据库的格式可能的格式参见 filehashOption。 PCorpus 创建的永久性语料库将文档存储在 R 外的数据库中。这意味着可以在内存中同时存在多个指向同一底层数据库的 PCorpus R 对象对一个对象所做的更改会传播到所有相应的对象这与 R 的默认语义不同。返回值 该函数返回一个继承自 PCorpus 和 Corpus 的对象。 txt - system.file(texts, txt, package tm) PCorpus(DirSource(txt),dbControl list(dbName pcorpus.db, dbType DB1)) 在这个例子中DirSource(txt) 创建了一个指向特定目录下文本文件的数据源对象然后 PCorpus 使用这个数据源和指定的 dbControl 参数创建了一个永久性语料库。 通过这种方式PCorpus 提供了一种灵活且持久的方式来管理和分析大量的文本数据。 文本挖掘的tm包内容实在太多更多的函数功能可以见英语原版文档 tm.pdf (r-project.org) 实在肝不动了 。