php – 用于文本自然语言处理的Laravel数据库设计

php – 用于文本自然语言处理的Laravel数据库设计,第1张

概述我有一个数据库设计问题. 我目前正在Twitter消息上使用三种不同的NLP引擎(Stanford NLP,IBM Watson和OpinionFinder)对日内股票数据进行自然语言处理. Stanford NLP和OpinionFinder都使用极性标志来表示情绪 – 正面,中立和负面.我可以在数据库中识别出-1 -1,0,1. IBM Watson在文本上有五种不同的百分比(从0到100), 我有一个数据库设计问题.

我目前正在Twitter消息上使用三种不同的NLP引擎(Stanford NLP,IBM Watson和OpinionFinder)对日内股票数据进行自然语言处理.

Stanford NLP和OpinionFinder都使用极性标志来表示情绪 – 正面,中立和负面.我可以在数据库中识别出-1 -1,1.

IBM Watson在文本上有五种不同的百分比(从0到100),称为愤怒,厌恶,恐惧,快乐和悲伤,这可以存储为浮点数或整数(即0.9或90).

每天(标识为日期,格式为YYYY-mm-dd)有三个情绪行,每个NLP引擎一行.因此,可以有三个相同的symbol_ID和date,这就是为什么我认为我还应该在复合唯一键中添加nlp_engine.我的计划是使用symbol_ID date nlp_engine作为复合唯一键.

另一种方法是,我还有一个存储股票价格/期货数据的价格表,它具有以下格式:

ID |日期| symbol_ID | …

所以,我可以使用在Sentiments.prices_ID中引用每一天的Symbols.ID,因为我只收集日内(每日)数据.

因此,我想创建一个名为Sentiments的表,其中包含以下列:

ID | symbol_ID |日期| nlp_engine |愤怒|厌恶|恐惧|快乐|悲伤|极性| created_at |的updated_at

说明:

ID – 主键

symbol_ID(符号表的外键,它将我的股票代码保存为日期和nlp_engine列的复合唯一键)

date – (带有symbol_ID和nlp_engine的复合唯一键)

nlp_engine – (我应该为此使用字符串,还是应该创建一个名为NLPEngines的新表并使用nlp_engine_ID?这也应该是带有symbol_ID和date的复合唯一键)

愤怒 – 漂浮

厌恶 – 漂浮

恐惧 – 漂浮

快乐 – 漂浮

悲伤 – 漂浮

极性 – 有符号整数,如-1,1

我只想对这个数据库设计提出一些批评 – 谢谢.

解决方法 您的数据结构听起来很可靠,但这取决于您将如何存储/检索此数据.

>这些数据是计算的结果,如果它需要是实时的并且是一次性的,您可能需要考虑使用更接近缓存存储或Nosql的东西.但同样,取决于你手头的问题.
> Laravel在单表继承方面不是特别灵活.您需要解析正确的类来处理不同引擎之间的交互.如果情绪表数据不需要标准化,那么您将把来自不同引擎的数据转换为不合理的格式.你最好创建3个不同的表,每个引擎一个.

但是,如果你绝对需要能够将多个引擎结果与一个价格联系起来,那么我认为你采取了正确的方法.我建议使用访问器/更改器来规范化您的数据,以便应用程序的其余部分不必知道如何 *** 作.

总结

以上是内存溢出为你收集整理的php – 用于文本自然语言处理的Laravel数据库设计全部内容,希望文章能够帮你解决php – 用于文本自然语言处理的Laravel数据库设计所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1251404.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存