我们从2011年开始,通过开发的App有计划地收集个人生活日志数据,目前已经有22位志愿者参与到这个项目中,收集到的有效生活日志数据超过4万余条。将这些丰富而杂乱的数据进行分类,为人们提供更清晰、有序的生活见解是一件有意义的事情。本文提出了一个生活日志文本分类模型DTC-TextCNN,通过引入LDA主题模型,对文本日志的主题特征进行提取;使用DB-SCAN算法,对发送动态时的地理位置进行聚类,得到不同的地理位置特征簇,并将提取到的文本主题特征和地理位置特征与文本动态进行拼接,输入到TextCNN模型中进行分类。实验结果表明,将地理位置这一特征引入模型中,有助于更好地理解文本发生的背景和环境,提供更丰富的上下文信息。融合了地理特征和主题特征的分类方法,弥补了生活日志文本语义模糊以及全局语义缺失的问题,提高了对于文本内容的理解水平。通过在Liu Lifelog数据集上的测试,可以看到该模型能够提高对生活日志分类的准确性。 We have been systematically collecting personal lifelog data through the development of an app since 2011. Currently, 22 volunteers have participated in this project and have collected over 40000 effective lifelog data. Classifying these rich and chaotic data to provide people with clearer and more organized insights into their lives is a meaningful thing. This article proposes a lifelog text classification model, DTC-TextCNN, which extracts topic features from text logs by introducing the LDA topic model; Using the DB-SCAN algorithm to cluster the geographical locations when sending dynamics, obtain different geographical feature clusters, concatenate the extracted text topic and geographical location features with the text dynamics, and input them into the TextCNN model for classification. The experimental results indicate that incorporating the feature of geographic location into the model helps to better understand the background and environment of text occurrence, providing richer contextual information. The classification method that integrates geographical and thematic features compensates for the problems of semantic ambiguity and global semantic loss in life log texts, and improves the level of understanding of text content. Through testing on the Liu Lifelog dataset, it can be seen that the model can improve the accuracy of lifelog classification.
我们从2011年开始,通过开发的App有计划地收集个人生活日志数据,目前已经有22位志愿者参与到这个项目中,收集到的有效生活日志数据超过4万余条。将这些丰富而杂乱的数据进行分类,为人们提供更清晰、有序的生活见解是一件有意义的事情。本文提出了一个生活日志文本分类模型DTC-TextCNN,通过引入LDA主题模型,对文本日志的主题特征进行提取;使用DB-SCAN算法,对发送动态时的地理位置进行聚类,得到不同的地理位置特征簇,并将提取到的文本主题特征和地理位置特征与文本动态进行拼接,输入到TextCNN模型中进行分类。实验结果表明,将地理位置这一特征引入模型中,有助于更好地理解文本发生的背景和环境,提供更丰富的上下文信息。融合了地理特征和主题特征的分类方法,弥补了生活日志文本语义模糊以及全局语义缺失的问题,提高了对于文本内容的理解水平。通过在Liu Lifelog数据集上的测试,可以看到该模型能够提高对生活日志分类的准确性。
生活日志,深度学习,文本分类
Zhiying Jia
School of Computer Science and Engineering, Shenyang Jianzhu University, Shenyang Liaoning
Received: Jan. 26th, 2024; accepted: Feb. 22nd, 2024; published: Feb. 29th, 2024
We have been systematically collecting personal lifelog data through the development of an app since 2011. Currently, 22 volunteers have participated in this project and have collected over 40000 effective lifelog data. Classifying these rich and chaotic data to provide people with clearer and more organized insights into their lives is a meaningful thing. This article proposes a lifelog text classification model, DTC-TextCNN, which extracts topic features from text logs by introducing the LDA topic model; Using the DB-SCAN algorithm to cluster the geographical locations when sending dynamics, obtain different geographical feature clusters, concatenate the extracted text topic and geographical location features with the text dynamics, and input them into the TextCNN model for classification. The experimental results indicate that incorporating the feature of geographic location into the model helps to better understand the background and environment of text occurrence, providing richer contextual information. The classification method that integrates geographical and thematic features compensates for the problems of semantic ambiguity and global semantic loss in life log texts, and improves the level of understanding of text content. Through testing on the Liu Lifelog dataset, it can be seen that the model can improve the accuracy of lifelog classification.
Keywords:Lifelog, Deep Learning, Text Classification
Copyright © 2024 by author(s) and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
近年来,随着社交软件的普及,人们开始在微博、Twitter和Instagram等社交媒体上用日记记录事件 [
目前,常用的文本分类机器学习算法主要有朴素贝叶斯(NB) [
文章的组织结构如下:第一节介绍了Lifelog的发展以及常用的分类方法,第二节介绍了我们的Lifelog项目及使用的数据集,第三节介绍了DTC-TextCNN模型的构建方式,第四节对模型结果进行评价,最后进行了总结和评论。
我们团队从2011年开始有计划地收集个人Lifelog数据。目前已经有22位志愿者参与到这个项目中,在过去的11年,几乎每一天都会记录一次数据,收集到的有效Lifelog数据超过4万条。志愿者可以登录我们团队开发的App,随时随地记录个人生活,存留下每一个精彩瞬间。图1是我们的开发的APP界面。
图1. Lifelog APP界面
APP会根据用户当前位置通过百度API自动记录用户的地里位置信息。每一条Lifelog数据记录了基本的位置信息(经度、纬度)、个人活动信息(行为描述)和显示信息(图像或视频)。为了更好将文本数据用于科研,当用户上传行为描述文本时,系统会自动将中文转换为英文。
用户不会在特定的时间发布动态,因此Lifelog数据集是典型的非连续的,包含标注等丰富信息的数据集。现在任何人都可以在我们的网站(www.lifelog.vip)上免费的获取已经公开的Lifelog数据,也可以免费下载这个App,从而参加到我们的项目中。图2展示了我们Web页面端收集的数据集。
图2. Lifelog数据集
本文选取Lifelog数据集中用户Liu在2011年至2022年间发表的9000余条Lifelog数据作为数据源,在后文中我们称其为Liu Lifelog数据。表1展示了Liu Lifelog中的部分数据。其中Num为每一条数据的序号,Lon和Lat分别为用户发送动态时所处地理位置的经度和纬度信息,Description为用户所发动态的文本描述,Behavior为动态的所属类别,Time表示发送动态的时间。
Num | Lon | Lat | Description | Behavior | Time |
---|---|---|---|---|---|
9485 | 123.517748 | 41.744032 | Rest at school | Rest | 2022/2/27 12:32:45 |
6015 | 123.480839 | 41.696514 | International Software Park meeting | Work outside | 2019/4/18 12:28:17 |
5053 | 123.445885 | 41.737401 | Eating in Hunnan | Eating outside | 2018/7/18 18:12:30 |
6054 | 123.400992 | 41.748622 | On the way to the studio | On road | 2019/10/25 14:40:42 |
表1. Liu Lifelog数据
收集到的Liu Lifelog数据中可能包含噪音,或是存在不一致、不完整等问题,直接进行训练可能对建模效果产生不良影响。因此,必须对数据进行预处理从而提高数据的准确性,以确保在模型训练过程中更好地捕捉和理解文本信息。
l 删除空值:用户在某些时刻选择只上传图片、像音频类的文件,而未进行任何文本描述,这些记录的Description文本字段为空,因此我们选择剔除掉这些文本数据为空的记录。
l 删除标点符号以及特殊字符:在文本中,标点符号以及包含的一些特殊字符,如HTML标签,表情符号等,这些符号对于文本分类来说没有实际意义,需要将它们从文本中删去。
l 大小写转换:确保文本数据中的字母大小写是一致的,有助于消除由于大小写不一致而可能导致的混淆和误解。在文本数据中,同一个词可能以不同的大小写形式出现,例如“Rest”和“rest”。如果不进行大小写转换,模型可能会将它们视为不同的特征。因此,我们将Liu Lifelog中所有文本数据转换为小写形式,从而消除由于大小写不一致而可能导致的混淆和误解。
l 去除停用词:在文本中经常出现没有实际意义,但是出现频率较高的词语,例如“a”、“the”等。这些词语不仅会增大计算量,还可能会影响模型的效果,因此,需要将他们从数据中剔除。
经过上述对数据的预处理后,我们过滤掉了Liu Lifelog中缺失或不完整的数据。同时由于other类型的数据表意不明,我们选择将这些具有干扰性的数据去除。最终,我们得到了8个种类的Lifelog数据,即ork in school、work outside、chores、rest、on road、meal outside、entertainment、tourism。
为了解决Lifelog领域中数据分类问题,我们提出了DTC-TextCNN文本分类模型。模型对用户发布的文本描述进行主题特征提取,对经度和纬度信息进行聚类,将不同的地理位置分配到不同的簇中进而得到地理位置簇特征。最后,将用户发布的文本描述、文本的主题特征和地理位置特征拼接,输入到TextCNN中进行分类。图3为DTC-TextCNN模型的流程图。
图3. DTC-TextCNN模型流程图
用户在相同地点发布的动态内容可能呈现较高的相似性,因此考虑将地理位置作为一个重要特征纳入模型,以增强对动态内容的分类能力。同时由于用户在同一个地点所发出的动态包含的经度纬度信息可能具有一定的偏差,因此我们使用DB-SCAN算法 [
LDA主题模型 [
人类语言具有高度模糊性,一句话可能有多重的意思或隐喻,而计算机当前还无法真正理解语言或文字的意义。因此,现阶段的主要做法是将文本数据转换为模型可以理解的数值表示,这通常包括词嵌入 [
使用LDA模型训练的主题向量和Word2Vec方法训练的词向量作为文本分类器的输入。Word2Vec侧重于词语上下文信息,但在表达词语的全局语义时存在不足。相比之下,LDA模型训练的主题特征向量反映了词语在整个文档集中的全局主题特征,更好地概括了词语的全局语义。因此,我们在文本分类时引入了LDA模型中词语的主题特征作为额外的语义补充信息,以提升分类效果。
由于在Liu Lifelog中,所记录的数据通常都是短文本数据,即这些记录包含相对较短的文本片段,可能是几个句子、一个段落,或者是简短的描述。因此采用短文本分类的方法能更好地对Liu Lifelog 数据进行分类。CNN相比于其他的深度学习模型以及经典的分类方法,对于文本的局部信息比较敏感;计算开销低。同时,在对短文本进行分类中,TextCNN是比较好的处理模型,在进行实验验证时具有较好的分类效果 [
通过DB-SCAN聚类算法进行地理位置的特征提取,在本文中,使用球面距离来衡量两者之间的距离并作为聚合的半径参数。选取1公里作为密度聚合的半径参数,MinPts的个数为5。聚类后部分结果如表2所示,其中Cluster字段为聚类后的位置簇id号。
Description | Lon | Lat | Cluster |
---|---|---|---|
Rest at school | 123.517748 | 41.744032 | 80 |
Eat with students | 123.509232 | 41.742581 | 80 |
International Software Park meeting | 123.480839 | 41.696514 | 351 |
Eating in Hunnan | 123.445885 | 41.737401 | 4 |
表2. 地理位置聚类结果
文本主题是由3.2节中提到的LDA主题模型训练得到的,使用LDA主题模型,生成文档–主题分布以及主题–词语分布。在本文中,由于需要进行分类的数据共有8种,因此我们将模型的主题参数k值设置为8。经过训练后生成的“主题–词语”分布可以得到每个词语关于主题的概率值,它表示每个词在主题下的概率分布,这可以更加丰富地表示文章中每一个词的潜在语义,以获得更加准确的效果。一个词在主题中的概率越大,说明这个词在这一主题中的重要程度越高,也就越能够表征该主题的主题信息,也就应赋予该词更高的权重。我们选取每个主题下概率前十的词语,计算在其主题下所占的归一化权重,公式如(1)所示。其中 p ( w i | z t ) 表示在第t个主题下词语i出现的概率。将通过(1)式计算得到的每个词在相应主题下的归一化权重与通过Word2Vec方法训练获得的词向量通过加权求和得到相应的主题向量,公式如(2)所示。其中 V w i 为通过Word2Vec方法训练获得的词向量, V topic t 为每一段生活日志文本对应的主题向量。主题向量的获取如流程如图4所示。
θ W t , i = p ( w i | z t ) ∑ j 10 p ( w i | z t ) (1)
V topic t = ∑ i K θ W t , i × V w i (2)
图4. 主题向量生成过程
将向量化后的文本信息,位置信息同主题向量拼接,使用两个不同卷积核大小的卷积层,然后通过全局最大池化层提取最显著的特征,最后通过全连接层进行分类。表3详细描述了DTC-TextCNN模型的整体结构,其中包括各层的参数数量和输出形状。
Layer (type) | Output Shape | Param |
---|---|---|
input_1 (InputLayer) | (None, 120) | 0 |
embedding_1 (Embedding) | (None, 120, 150) | 762,300 |
conv1d_1 (Conv1D) | (None, 120, 512) | 230,912 |
conv1d_2 (Conv1D) | (None, 120, 128) | 57,728 |
global_max_pooling1d_1(GlobalMaxPooling) | (None, 512) | 0 |
global_max_pooling1d_2(GlobalMaxPooling) | (None, 128) | 0 |
concatenate_1 (Concatenate) | (None, 640) | 0 |
dropout_1 (Dropout) | (None, 640) | 0 |
batch_normalization_1 (BatchNormalization) | (None, 640) | 2560 |
dropout_2 (Dropout) | (None, 640) | 0 |
dropout_3 (Dropout) | (None, 640) | 0 |
dense_1 (Dense) | (None, 6) | 3864 |
表3. DTC-TextCNN 模型结构
本节使用2.2节介绍过的Liu Lifelog数据进行实验。将Liu Lifelog数据集按照8:2的比例随机划分成互不相交的两部分作为训练集和测试集。使用Dropout正则化技术 [
Factor | Contents |
---|---|
Activation Function | Relu |
Cost Function | Categorical_crossentrop |
Learning rate | Auto |
Optimizer | Adam |
Epochs | 30 |
表4. DTC-TextCNN 模型实验环境
使用DTC-TextCNN对Liu Lifelog数据集分类的总体准确率为60.9%。此外,我们还建立了只包含地理位置信息和动态文本信息的DC-TextCNN模型,以及只包含动态文本信息的D-TextCNN模型,这两个模型对于数据集分类的准确率分别为57.9%和50.1%。上述模型的验结果如表5所示。可以看到,融合了主题特征和地理位置特征的DTC-TextCNN能够有效提高生活数据的分类效果。
Model | Accuary |
---|---|
DTC-TextCNN | 60.9% |
DC-TextCNN | 57.9% |
D-TextCNN | 50.1% |
表5. DTC-TextCNN模型实验结果
对Lifelog数据的分类不同于传统的文本分类,因为它是专门记录日常生活的经历,与个体用户的生活和经验相关联,涉及用户的兴趣、活动、位置等信息,这些个性化的特点要求用于分类的模型需要更好地适应用户的特殊行为和偏好。在本文中,我们提出了DTC-TextCNN模型用于解决Lifelog领域中数据分类问题。该模型融合了地理位置信息和文本主题信息。相比于基本模型,该模型能够提高Lifelog数据分类的准确性。
对Lifelog数据的收集是一件有意义的事情,人们可以通过对以往数据的查看,来回忆发生在自己身上的那些值得纪念的事情,同时,对Lifelog进行分类,使得人们更加方便地搜索相关动态。现在我们的项目已经公开在www.lifelog.vip,同时提供相关数据集供公众研究使用。希望有更多的志愿者能参与到项目之中,和我们一起共同留存生活中的美好时刻。
贾智颖. 基于文本主题和地理位置的生活日志分类方法Lifelog Classification Method Based on Text Theme and Geographic Location[J]. 计算机科学与应用, 2024, 14(02): 480-488. https://doi.org/10.12677/CSA.2024.142048
https://doi.org/10.1109/EMBC46164.2021.9629798
https://doi.org/10.1561/1500000033
https://doi.org/10.1007/s10916-016-0534-1
https://doi.org/10.1109/ICCE.2018.8326116
https://doi.org/10.1007/s11042-021-10755-w
https://doi.org/10.1155/2014/616030
https://doi.org/10.1007/s11042-020-10453-z
https://doi.org/10.1145/321075.321084
https://doi.org/10.1109/BIA50171.2020.9244278
https://doi.org/10.3115/v1/D14-1181
https://doi.org/10.1016/j.procs.2020.03.416
https://doi.org/10.1145/3068335
https://doi.org/10.1007/s11042-018-6894-4
https://doi.org/10.48550/arXiv.1301.3781
https://doi.org/10.1109/BigData.2015.7364114
https://doi.org/10.1088/1742-6596/1757/1/012092