我正在构建一个系统来分析句子并存储单词彼此跟随的频率。思路是在分析下面的句子后:
数据库将包含:
[start of sentence]: followed by ("what": 1 time, "the": 1 time)
"what": followed by............. ("is": 1 time)
"is": followed by................("the": 1 time, "4pm": 1 time)
"the": followed by...............("time": 1 time)
"time": followed by..............([end of sentence]: 1 time, "is": 1 time)
"4pm": followed by...............([end of sentence]: 1 time)
我可以用 RDBMS 来做,但似乎图形数据库应该更合适,所以我正在尝试用 Dgraph 来做。我用过这个模式:
type Word {
text: String! @id
}
type Transition {
from: Word
to: Word
count: Int!
}
在
Transition
中,我在 from 和 中使用空值分别表示句子的开始和结束标记。
我设法写了一个查询来获取句子开头的单词:
query GetFirstWords {
queryTransition(filter: {not: {has: from}}) {
to {
text
}
count
}
}
虽然我还没有设法得到其他词。基于以上内容,(对我而言)最合乎逻辑的是:
query GetNextWords {
queryTransition(filter: {from: {text: {eq: "what"}}}) {
to {
text
}
count
}
}
但是那(以及我尝试过的大多数其他事情)最终会出现如下错误:
Field 'from' is not defined by type 'TransitionFilter'.
您可能已经知道我是 Dgraph 和 GraphQL 的初学者,所以我使用的模式很可能不合适。我也尝试向它添加一个 ID 参数,以防缺少非字符串 ID 是问题所在,但没有任何乐趣。我也很困惑,我看到的很多 GraphQL 示例看起来不像 Dgraph 的,而且也不起作用,例如没有
queryTransition
部分什么都不起作用,并且在定义 TransitionFilter
等的地方是否有额外的模式?