主要内容

从文件中提取文本数据

本示例演示如何从文本、HTML、Microsoft®Word、PDF、CSV和Microsoft Excel®文件中提取文本数据,并将其导入MATLAB®中进行分析。

通常,将文本数据导入MATLAB的最简单方法是使用extractFileText函数。此函数从文本、PDF、HTML和Microsoft Word文件中提取文本数据。若要从CSV和Microsoft Excel文件导入文本,请使用readtable.要从HTML代码中提取文本,请使用extractHTMLText.若要从PDF表单读取数据,请使用readPDFFormData

文本文件

从中提取文本sonnets.txt使用extractFileText.该文件sonnets.txt包含莎士比亚的十四行诗。

文件名=“sonnets.txt”;str = extractFileText(文件名);

通过提取两个标题之间的文本来查看第一首十四行诗”“而且”2”。

开始=“我”+换行;鳍=“二世”;sonnet1 = extractBetween(str,start,fin)
十四行诗1 =“我们渴望从最美丽的生灵身上繁衍,这样美丽的玫瑰就永远不会凋谢,但那成熟的会随着时间的流逝而消逝,他温柔的后代才会继承他的记忆:而你,只愿你自己明亮的眼睛,用自我充实的燃料来喂养你光辉的火焰,使富足的地方变成饥荒,你自己是你的敌人,对你甜美的自己太残忍了:你现在是世界的新鲜装饰,是艳丽春天的唯一使者,在你自己的花蕾里埋葬你的满足,温柔的粗人在吝啬中浪费:可怜这个世界吧,否则就让这个贪吃的人,以坟墓和你来吞食这个世界应得的。”

对于包含多个以换行符分隔的文档的文本文件,使用readline函数。

文件名=“multilineSonnets.txt”;STR = readlines(文件名)
str =3×1的字符串“我们渴望从最美丽的生灵中繁衍,这样美丽的玫瑰就不会凋谢,但那成熟的会随着时间的流逝而消逝,他温柔的后代将会继承他的记忆:而你,只愿自己明亮的眼睛,用自我充实的燃料来喂养你光辉的火焰,使富足的地方变成饥荒,你自己是你的敌人,对你甜美的自己太残忍了:你现在是世界的新鲜装饰,是艳丽春天的唯一使者,在你自己的花蕾里埋葬你的满足,温柔的粗人在吝啬中浪费:可怜这个世界吧,否则就让这个贪吃的人,以坟墓和你来吞食这个世界应得的。”“当四十个冬天围困你的眉间,在你美丽的田野上挖出深深的战壕,你年轻时骄傲的衣装现在被人注视,将会变成一文一文的破草:那时有人问,你所有的美丽都藏在哪里,你青春年华的财宝都藏在哪里;你说,在你深陷的眼睛里,有一种吞噬一切的耻辱和挥霍无度的赞美。如果你能回答:“我这漂亮的孩子将总结我的计数,为我的老过失开脱”,证明他的美丽继承了你的美丽,那你的美貌就更值得赞美了!当你年老时,这将是新的;当你感到血液寒冷时,这将是温暖的。”“照照你的镜子,告诉你所看到的那张脸。如果你现在不重新修理她,你就是在欺骗这个世界,剥夺了某个母亲的幸福。她在哪里如此美丽,她未出世的子宫不屑于你的耕作?或者他如此喜爱谁将成为他自爱的坟墓,阻止子孙后代? Thou art thy mother's glass and she in thee Calls back the lovely April of her prime; So thou through windows of thine age shalt see, Despite of wrinkles this thy golden time. But if thou live, remember'd not to be, Die single and thine image dies with thee."

微软Word文档

从中提取文本sonnets.docx使用extractFileText.该文件exampleSonnets.docx在微软Word文档中包含莎士比亚的十四行诗。

文件名=“exampleSonnets.docx”;str = extractFileText(文件名);

通过提取两个标题之间的文本来查看第二首十四行诗”2“而且”3”。

开始=“二世”+换行;鳍=“三世”;sonnet2 = extractBetween(str,start,fin)
十四行诗2 =“当四十个冬天围困你的眉头,在你美丽的田野上挖出深深的战壕,你年轻时骄傲的衣装现在被这样注视,将会变成一文不值的破烂草:然后有人问,你所有的美丽都藏在哪里,你青春年华的财宝都藏在哪里;你说,在你深陷的眼睛里,有一种吞噬一切的耻辱和挥霍无度的赞美。如果你能回答:“我这漂亮的孩子将总结我的计数,为我的老过失开脱”,证明他的美丽继承了你的美丽,那你的美貌就更值得赞美了!当你年老时,这将是新的;当你感到血液寒冷时,这将是温暖的。”

示例Microsoft Word文档在每行之间使用两个换行符。要用单个换行符替换这些字符,请使用取代函数。

Sonnet2 = replace(Sonnet2,[换行符],换行符)
十四行诗2 =“当四十个冬天围困你的眉头,在你美丽的田野上挖出深深的战壕,你年轻时骄傲的衣装现在被这样注视,将会变成一文不值的破烂草:然后有人问,你所有的美丽都藏在哪里,你青春年华的财宝都藏在哪里;你说,在你深陷的眼睛里,有一种吞噬一切的耻辱和挥霍无度的赞美。如果你能回答:“我这漂亮的孩子将总结我的计数,为我的老过失开脱”,证明他的美丽继承了你的美丽,那你的美貌就更值得赞美了!当你年老时,这将是新的;当你感到血液寒冷时,这将是温暖的。”

PDF文件

从PDF文档提取文本,从PDF表单提取数据。

PDF文档

从中提取文本sonnets.pdf使用extractFileText.该文件exampleSonnets.pdf包含一个PDF格式的莎士比亚十四行诗

文件名=“exampleSonnets.pdf”;str = extractFileText(文件名);

通过提取两个标题之间的文本来查看第三首十四行诗”3“而且”4”。这个PDF在每个换行符之前有一个空格。

开始=“Iii”+换行;鳍=“四”;sonnet3 = extractBetween(str,start,fin)
照照你的镜子,告诉你所看到的那张脸。现在是该换一张脸的时候了;如果你现在不重新修理她,你就是在欺骗这个世界,剥夺了某个母亲的幸福。她在哪里如此美丽,她未出世的子宫不屑于你的耕作?或者他如此喜爱谁将成为他自爱的坟墓,阻止子孙后代?你是你母亲的镜子,她在你身上唤回她青春的四月;这样,透过你年老的窗户,你将看到你的黄金时光,尽管有皱纹。但如果你活着,不被人记住,孤独地死去,你的形象也随你而去。”

PDF表单

若要从PDF表单读取文本数据,请使用readPDFFormData.该函数返回一个包含PDF表单字段数据的结构体。

文件名=“weatherReportForm1.pdf”;数据= readPDFFormData(文件名)
data =带字段的结构:event_narrative:“Plantersville和Nettleton之间的大树倒了。”

超文本标记语言

从HTML文件、HTML代码和web中提取文本。

HTML文件

若要从已保存的HTML文件提取文本数据,请使用extractFileText

文件名=“exampleSonnets.html”;str = extractFileText(文件名);

通过提取两个标题之间的文本来查看第四首十四行诗“四”而且“V”

Start = newline +“四”+换行;Fin =换行符+“V”+换行;sonnet4 = extractBetween(str,start,fin)
放荡的可爱啊,你为什么要把你美丽的遗产浪费在你自己身上?大自然的馈赠什么也不给予,只是借出,她坦率地借给那些自由的人:那么,美丽的吝啬鬼,你为什么滥用赐给你的慷慨?无利可图的高利贷者,你为什么要用这么多的钱,却活不下去?因为你只与你自己交易,你欺骗了你自己,欺骗了你自己。那么,当自然召唤你离开的时候,你能留下什么令人满意的审计呢?你那未被使用过的美丽,必须和你一同埋葬,它已被使用过,将成为你的执行者。”

HTML代码

要从包含HTML代码的字符串中提取文本数据,请使用extractHTMLText

代码=

THE十四行诗

by William Shakespeare

"
;str = extractHTMLText(code)
str = "威廉·莎士比亚十四行诗"

来自网络

要从网页中提取文本数据,首先阅读使用的HTML代码webread,然后使用extractHTMLText

url =“//www.tianjin-qmedu.com/help/textanalytics”;代码= webread(url);str = extractHTMLText(code)
文本分析工具箱分析和建模文本数据发布说明PDF文档发布说明PDF文档文本分析工具箱™为预处理、分析和建模文本数据提供算法和可视化。使用工具箱创建的模型可用于情感分析、预测性维护和主题建模等应用程序。文本分析工具箱包括用于处理来自设备日志、新闻提要、调查、操作员报告和社交媒体等来源的原始文本的工具。您可以从流行的文件格式提取文本、预处理原始文本、提取单个单词、将文本转换为数字表示以及构建统计模型。使用诸如LSA、LDA和词嵌入等机器学习技术,您可以从高维文本数据集中找到集群并创建特征。使用“文本分析工具箱”创建的功能可以与来自其他数据源的功能相结合,以构建利用文本、数字和其他类型数据的机器学习模型。入门学习文本分析工具箱文本数据准备基础知识将文本数据导入MATLAB®并对其进行预处理以进行分析建模和预测使用主题模型和单词嵌入开发预测模型显示和演示使用单词云和文本散点图可视化文本数据和模型语言支持文本分析工具箱中的语言支持信息万博1manbetx

解析HTML代码

要查找HTML代码的特定元素,请使用htmlTree和使用findElement.解析HTML代码并找到所有超链接。超链接是具有元素名称的节点“一个”

tree = htmlTree(code);选择器=“一个”;subtrees = findElement(树,选择器);

查看前10个子树并使用提取文本extractHTMLText

子树(1:10)
ans = 10×1 htmlTree:<类= " skip_link sr-only " href = " # skip_link_anchor " >跳到内容< / > < A href = " //www.tianjin-qmedu.com?s_tid=gn_logo " class = " svg_link navbar-brand”> < IMG src = " /图片/响应/全球/ pic-header-mathworks-logo.svg”类=“mw_logo”alt = " MathWorks " / > < / > < A href = " //www.tianjin-qmedu.com/pros manbetx 845ducts.html?s_tid=gn_ps " >产品< / > < A href = " //www.tianjin-qmedu.com/so万博 尤文图斯lutions.html?s_tid=gn_sol " >解决方案< / > < A href = " //www.tianjin-qmedu.com/academia.html?s_tid=gn_acad " >学术界< / > <支持href = " https://www.mathworks万博1manbetx.com/support.html?s_tid=gn_supp " > < / > < A href = " //www.tianjin-qmedu.com/matlabcentral/?s_tid=gn_mlc " >社区< / > < A href = " //www.tianjin-qmedu.com/company/events.html?s_tid=gn_ev " >事件< / > < A href = " https://www.mathws manbetx 845orks.com/products/get-matlab.html?s_tid=gn_getml " >得到MATLAB < / > < A href = " //www.tianjin-qmedu.com?s_tid=gn_logo " class = " svg_link pull-left”> < IMG src = " /图片/响应/全球/ pic-header-mathworks-logo.svg”类=“mw_logo”alt = " MathWorks " / > < / >
str = extractHTMLText(subtrees);

查看前10个超链接的提取文本。

str (1:10)
ans =10×1的字符串“跳到内容" "" "产品”“解决方案”“学s manbetx 845术界”“支持”“社区”万博 尤文图斯“事件”“获取MATLAB”“”万博1manbetx

要获取链接目标,使用getAttributes并指定属性“href”(超链接引用)。获取前10个子树的链接目标。

attr =“href”;str = getAttribute(subtrees(1:10),attr)
str =10×1的字符串#skip_link_anchor" //www.tianjin-qmedu.com?s_tid=gn_logo" "//www.tianjin-qmedu.com/prs manbetx 845oducts.html?s_tid=gn_ps" "//www.tianjin-qmedu.com/so万博 尤文图斯lutions.html?s_tid=gn_sol" "//www.tianjin-qmedu.com/academia.html?s_tid=gn_acad" "https://万博1manbetxwww.tianjin-qmedu.com/support.html?s_tid=gn_supp" "//www.tianjin-qmedu.com/matlabcentral/?s_tid=gn_mlc" "//www.tianjin-qmedu.com/company/events.html?s_tid=gn_ev" "//www.tianjin-qmedu.com/products/get-matlab.html?s_tid=gn_getml"“//www.tianjin-qmedu.com?s_tid=gn_logo”

CSV和微软Excel文件

若要从CSV和Microsoft Excel文件中提取文本数据,请使用readtable并从它返回的表中提取文本数据。

从中提取表数据factoryReposts.csv使用readtable函数并查看表的前几行。

T =可读的(“factoryReports.csv”“TextType”“字符串”);头(T)
类别描述紧急解决成本  _____________________________________________________________________ ____________________ ________ ____________________ _____ " 项目是偶尔陷入扫描仪卷。”“机械故障”“中等”“重新调整机”45“装配活塞发出巨大的嘎嘎声和砰砰声。”“机械故障”“中等”“重新调整机器”“开机时电源有故障。”"电子故障" "高" "完全更换" 16200 "装配器电容器烧坏"“电子故障”“高”“更换部件”“352”“混合器熔断器触发。”"电子故障" "低" "列入观察名单" 55 "爆裂管道中施工剂正在喷洒冷却剂""泄漏" "高" "更换部件" 371 "搅拌机保险丝烧断。"“电子故障”“信号低”“更换部件”“东西继续从传送带上掉下来。”"机械故障" "低" "调整机

方法中提取文本数据event_narrative列并查看前几个字符串。

str = t .描述;str (1:10)
ans =10×1的字符串“物品偶尔会卡在扫描仪线轴上。”“组装活塞发出巨大的嘎嘎声和砰砰声。”“在启动工厂时,电力会被切断。”“组装机里的电容器烧坏了。”“混频器把保险丝弄断了。”"爆裂管道内的施工剂正在喷洒冷却剂"“搅拌机里的保险丝烧断了。”“东西继续从传送带上掉下来。”“传送带上落下的物品。”扫描器卷筒裂开了,很快就会开始弯曲。

从多个文件中提取文本

如果文本数据包含在一个文件夹中的多个文件中,则可以使用文件数据存储将文本数据导入MATLAB。

为示例十四行诗文本文件创建一个文件数据存储。示例文件命名为“exampleSonnetN.txt”,N是十四行诗的数字。使用通配符“*”指定文件名,以查找该结构的所有文件名。指定要的读取函数extractFileText,将此函数输入到fileDatastore使用函数句柄。

位置=“exampleSonnet * . txt”;fds = fileDatastore(位置,“ReadFcn”, @extractFileText);

循环遍历数据存储中的文件并读取每个文本文件。

STR = [];hasdata(fds) textData = read(fds);STR = [STR;textData];结束

查看提取的文本。

str
str =4×1的字符串“从最美丽的生物中,我们渴望增加,(这样美丽的玫瑰就不会消亡,)但成熟的人会随着时间的流逝而消亡,(他温柔的继承人可能会继承他的记忆。)但你,被你自己明亮的眼睛所约束,(用自我充实的燃料来养活你的光芒,)(在富足的地方制造饥荒,(你自己是你的敌人,)对你甜美的自己太残忍了:(你现在是世界的新鲜装饰,(你是华丽春天的唯一使者,)在你自己的蓓蕾中埋葬你的满足,(温柔的粗人在吝啬中浪费:(可怜这个世界,否则就是这个贪婪的人,)以坟墓和你,吃掉世界应得的。”当四十个冬天围困你的额头,(在你美丽的田野上挖出深深的战壕,)(你年轻时骄傲的制服现在被如此凝视,(将成为一文价值的破烂杂草)(然后被问及,你所有的美丽都在哪里,(你青春岁月的所有宝藏都在哪里;)(说,在你深陷的眼睛里,(是吞噬一切的耻辱和挥霍的赞美。)(你的美丽更值得赞美,)(如果你能回答“我的这个漂亮的孩子(将总结我的计数,并为我旧的借口),(通过继承你的美丽来证明他的美丽!)(当你年老时,这将是新的,(当你感到血液寒冷时,看到它的温暖。)照照镜子,告诉你所看到的那张脸(现在该换一张脸了);(如果你现在不重新修补它,(你就是在欺骗世界,剥夺母亲的幸福)。(因为她在哪里如此美丽,她的未出世的子宫(不屑于你的耕作)?(或他如此喜爱谁将成为坟墓,)(他的自爱阻止子孙后代?)(你是你母亲的镜子,她在你体内(唤回她青春的四月时光);(这样,你将透过你年老的窗户看到,(尽管有皱纹,这是你的黄金时光。)(但如果你活着,不被人记住,)(孤独地死去,你的形象与你一起死去。)挥霍无度的美人,你为什么要把(你美丽的遗产)花在自己身上?(大自然的遗赠什么也不给,只是借给,)(她坦率地借给那些自由的人:(那么,美丽的吝啬鬼,你为什么滥用(给你的慷慨的施舍?)(无利可图的高利贷者,你为什么要用(这么大笔的钱,却活不下去)?(因为只与你自己交易,)你欺骗了你自己,你可爱的自己。(那么,当自然召唤你离开时,(你能留下什么令人满意的审计?)(你未被使用过的美丽必须和你一起埋葬,(被使用过的美丽,将会成为你的执行者。)

另请参阅

||||

相关的话题