主要内容

创建共现网络

此示例演示如何使用单词袋模型创建共现网络。

给定一个文档的语料库,共现网络是一个无向图,节点对应于词汇表中的唯一单词,边对应于文档中共现单词的频率。使用共现网络来可视化和提取文档语料库中单词之间关系的信息。例如,您可以使用共现网络来发现哪些单词通常与指定的单词一起出现。

导入文本数据

提取文件中的文本数据weekendUpdates.xlsx使用readtable.该文件weekendUpdates.xlsx包含包含标签的状态更新“#周末”而且“#假期”.方法读取数据readtable函数并从中提取文本数据TextData列。

文件名=“weekendUpdates.xlsx”;TBL = readtable(文件名,“TextType”“字符串”);textData = tbl.TextData;

查看前几个观察结果。

textData (1:5)
ans =5 x1字符串“结婚周年快乐!下一站:巴黎!“哈哈,在海滩上烧烤,自鸣得意!”“为周六晚上做准备#美味#周末”“和我一起说——我需要一个#假期!!”多年来第一次在家放松……这就是生活!#周末”

文本数据预处理

对文本进行标记,将其转换为小写,并删除停止词。

documents = tokenizedDocument(textData);文件=下(文件);文档= removeStopWords(文档);

使用单词袋模型创建单词计数矩阵。

bag = bagOfWords(文档);计数= bag.Counts;

要计算单词共现,请将单词数矩阵乘以它的转置。

Cooccurrence = counts.'*counts;

方法将共现矩阵转换为网络函数。

G =图(coooccurrence,bag.)词汇,“omitselfloops”);

来可视化网络情节函数。将线粗细设置为边缘权重的倍数。

LWidths = 5* g.g edgs . weight /max(g.g edgs . weight);情节(G,“线宽”LWidths)标题(“Co-occurence网络”

图中包含一个axes对象。标题为“共现网络”的axes对象包含一个graphplot类型的对象。

查找单词“great”的邻词邻居函数。

词=“伟大”
单词= "great"
Idx = find(包。词汇== word);nbrs = neighbors(G,idx);bag.Vocabulary (nbr) '
ans =18 x1字符串“下一个”“#假期" "" "#周末”“家园”“激动”“航班”“延误”“卡住”“机场”“路上”“花" "" "可爱”“朋友”“迷你”“大家”

通过提取单词“great”及其相邻词的子图,可视化单词“great”的共出现情况。

H =子图(G,[idx;nbr]);LWidths = 5* h.h edgs . weight /max(h.h edgs . weight);情节(H,“线宽”LWidths)标题(共现网络-字:""+单词+”“”“);

图中包含一个axes对象。标题为“共现网络”的axis对象包含一个graphplot类型的对象。

有关图表和网络分析的更多信息,请参见图与网络算法

另请参阅

|||

相关的话题