存储文本挖掘数据

3
我希望能够追踪一大批文档上的热门话题,并根据话题提供建议,而不是通常的词袋模型。为了提取话题,我使用自然语言处理技术。
我的问题是,我应该如何持久化这些数据,以便: 1)我可以快速获取每个话题的趋势数据(从原则上讲,每当用户打开一个文档时,该文档中的话题就应该在热度上升) 2)我可以快速比较文档以提供建议(在这里,我考虑使用聚类技术)
更具体地说,我的问题是: 1)我应该采用存储文本挖掘数据的通常方式吗?即为每个文档存储一个主题出现向量,以便稍后测量不同文档之间的欧几里德距离。 2)还有其他方法吗?
我正在寻找特定于Python的解决方案。我已经研究了SQL和NoSQL数据库,以及pytables和h5py,但我不确定如何实现这样的系统。其中一个问题是,我如何处理不断增长的话题词汇表?
非常感谢。

文档中的主题只添加一次吗?还是可以随着时间的推移向旧文档添加新主题? - Gordon Linoff
@GordonLinoff 它们只会被添加一次。 - user1491915
你的问题的答案是,你应该将它存储在一个 SQL 数据库中,其中包括 Topics、DocumentUsage 和 DocumentTopics 表。我刚刚写出了完整的答案,但由于一些技术问题,Stack Overflow 丢失了它。我现在没有时间重新输入它。 - Gordon Linoff
2个回答

1
为什么不使用简单的SQL表?
表格:
- 具有id或文件名等主键的文档 - 具有指向文档和术语(在两个字段上索引,可能是唯一的)的外键的观察结果
你提到的数组方法似乎是获取术语的缓慢方式。使用SQL,您可以轻松地将新术语添加到观察结果表中。
如果文档表包括时间戳,则易于聚合甚至通过日期进行趋势分析。

1
我建议您在SQL数据库中完成这项工作。您可能不想将文档存储在那里,但主题是适当的。
您需要一个仅用于主题的表:
create table Topics (
    TopicId int identity(1,1), -- SQL Server for auto increment column
    TopicName varchar(255),
    CreatedBy varchar(255) default system_user,
    CreatedAt datetime default getdate()

)

假设您有某种文档ID来标识文档,您想为分配给文档的主题创建另一个表:

create table DocumentTopics (
    DocumentTopicId int identity(1,1), -- SQL Server for auto increment column
    TopicId int,
    DocumentID int,
    CreatedBy varchar(255) default system_user,
    CreatedAt datetime default getdate()

)

还有一个用于文档浏览的表:

create table DocumentView (
    DocumentViewId int identity(1,1), -- SQL Server for auto increment column
    DocumentId int,
    ViewedAt datetime,
    viewedBy int, -- some sort of user id
    CreatedBy varchar(255) default system_user,
    CreatedAt datetime default getdate()

)

现在,您可以使用类似以下查询语句按照给定日期范围获取热门话题:

select t.TopicId, t.TopicName, count(*) as cnt
from DocumentUsage du join
     DocumentTopics dt
     on du.DocumentId = dt.DocumentId join
     Topics t
     on dt.TopicsId = t.TopicsId
where du.ViewedAt between <date1> and <date2>
group by t.TopicId, t.TopicName
order by 3 desc

您还可以获取有关用户、时间变化和其他信息的信息。您可以拥有一个用户表,该表可以为主题提供权重(更可靠的用户,不太可靠的用户)。系统的这个方面应该使用SQL完成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接