创建共现网络
此示例演示如何使用单词袋模型创建共现网络。
给定一个文档的语料库,共现网络是一个无向图,节点对应于词汇表中的唯一单词,边对应于文档中共现单词的频率。使用共现网络来可视化和提取文档语料库中单词之间关系的信息。例如,您可以使用共现网络来发现哪些单词通常与指定的单词一起出现。
导入文本数据
提取文件中的文本数据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网络”)
查找单词“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)标题(共现网络-字:""+单词+”“”“);
有关图表和网络分析的更多信息,请参见图与网络算法.
另请参阅
tokenizedDocument
|bagOfWords
|removeStopWords
|图