gpt4 book ai didi

python - 存储文本挖掘数据

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:33 24 4
gpt4 key购买 nike

我希望在大量文档中跟踪主题流行度。此外,我想根据主题向用户提供建议,而不是通常的词袋模型。为了提取主题,我使用了超出本文重点的自然语言处理技术。

我的问题是我应该如何保存这些数据,以便:I)我可以快速获取每个主题的趋势数据(原则上,用户每次打开文档时,该文档中的主题的流行度应该上升)II) 我可以快速比较文档来提供推荐(这里我想到的是使用聚类技术)

更具体地说,我的问题是:1) 我应该采用通常的存储文本挖掘数据的方式吗?意思是为每个文档存储一个主题出现向量,以便我以后可以测量不同文档之间的欧氏距离。2) 其他方式?

我正在寻找特定的 python 方法来执行此操作。我研究过 SQL 和 NoSQL 数据库,也研究过 pytables 和 h5py,但我不确定我将如何实现这样的系统。我担心的问题之一是如何处理不断增长的主题词汇?

非常感谢

最佳答案

我建议您在 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()

)

还有另一个文档 View 表:

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 来完成。

关于python - 存储文本挖掘数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11267143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com