tl; dr :我找不到除Google Grams Dataset之外的that one中使用的所有标记的完整列表,其中仅包含PoS标记和_START_
, _ROOT_
和_END_
。
,_.
,._.
,_._
等令牌是什么意思?鉴于他们的频率 - 见下文 - 我强烈认为他们是标签(他们不能成为正确的代币)。
背景:
我正在尝试从Google的n-gram数据集中提取信息,并且无法理解他们的某些标记,以及如何将其考虑在内。
最后,我想估计一个单词跟随另一个单词的可能性
例如,计算令牌protection
跟随equal
的可能性大致意味着计算count("equal protection") / count("equal *")
其中*
是通配符:语料库中的任何1个数据块。
棘手的部分是计算count("equal *")
实际上,例如,Google n-gram数据集中的二元组equal to
帐户多次出现:
equal to
,equal to_PRT
(消除歧义的PoS版本)equal _PRT_
(汇总所有PRT,即可能跟随equal
的粒子)。当我在pyspark上计算时显示:
>>> total = ggrams.filter(ggrams.ngram.startswith("equal ")).groupby("ngram") \
.sum("match_count")
>>> total.sort("sum(match_count)", ascending=False).show(n=15)
+------------+----------------+
| ngram|sum(match_count)|
+------------+----------------+
|equal _NOUN_| 20130934|
| equal _PRT_| 16620727|
| equal to| 16598291|
|equal to_PRT| 16598291|
| equal _._| 5119672|
| equal _ADP_| 3037747|
| equal ,| 2276119|
| equal ,_.| 2276119|
| equal in| 1682835|
|equal in_ADP| 1682176|
| equal .| 1628257|
| equal ._.| 1628257|
|equal _CONJ_| 1363739|
| ... | ...|
因此,为了避免多次计算同一个二元组,我的想法是将所有模式的所有计数加起来,例如"equal <POS>"
,其中<POS>
在描述的PoS集[_PRT_, _NOUN_, ...]
中(可查找) here)
这样做我获得的总和数字是我从上面显示的数据框中得到的数字的1/3。这加强了我的假设,一个计数将占三倍。但我无法说服自己最好的方法是什么,特别是通知这些奇怪的令牌,_.
,._.
,_._
这些含义我没有任何线索。< / p>
答案 0 :(得分:2)
documentation 中给出的词性标签列表没有提到其中两个标签,但 2012 paper Syntactic Annotations for the Google Books Ngram Corpus 提到了:
‘.’
(标点符号)X
(其他类别的统称,例如缩写词或外来词)所以标记 ,_.
是一个附加了它的 POS 标签的逗号,就像标记 run_VERB
一样。类似地,._.
是一个附加了其词性标记的句号。最后,_._
表示标点符号,任何标点符号就像 _VERB_
是任何动词。