![]() |
1
9
内部spaCy跟踪布尔数组,以判断标记是否有尾随空格。您需要使用此数组将字符串重新组合在一起。如果使用seq2seq模型,则可以单独预测空间。 詹姆斯·布拉德伯里(TorchText的作者)向我抱怨这一点。他是对的,我在spaCy设计标记化系统时没有考虑seq2seq模型。他开发了revtok来解决他的问题。 基本上,revtok所做的(如果我理解正确的话)是将两个额外的位打包到词素ID上:词素是否与前一个空格有关联,以及是否与后一个空格有关联。在词素都具有空间亲和力的标记之间插入空格。 以下是为spaCy Doc查找这些位的代码:
诀窍在于,当 任何一个 当前的词素表示“无尾随空格” 或 下一个词素是“无前导空格”。这意味着您可以使用频率统计信息来决定这两个词素中的哪一个因空间不足而“受到责备”。
詹姆斯的观点是,这种策略给单词预测决策增加的熵很少。备用方案将使用以下条目扩展词典
|
![]() |
2
1
TL;博士 我已经编写了一段代码来尝试这样做,下面是代码片段。 另一种计算复杂度为O(n^2)*的方法是使用我刚刚编写的函数。 主要思想是 “什么样的空间分裂,将再次重新连接!” 代码:
用法:
输出:
缺点:在这种方法中,您可以很容易地合并“do”和“nt”,以及点“”之间的条形空间和前面的单词。 这种方法并不完美,因为有多种可能的句子组合,导致特定的空间标记化。 我不确定当你只有空格分隔的文本时,是否有一种方法可以完全删除一个句子,但这是我最好的方法。 在谷歌上搜索了几个小时后,只找到了几个答案,我在chrome上的3个选项卡上打开了这个堆积如山的问题;),它写的基本上是 “不要使用spaCy,请使用revtok” .由于我无法改变其他研究人员选择的标记化,我不得不开发自己的解决方案。希望它能帮助别人;) |
![]() |
Lau Kumra · 如何为货币重新训练现有spacy-NER模型 6 年前 |
![]() |
Abhishek Ram · 如何在Spacy中添加其他货币字符 6 年前 |
![]() |
max · 我怎样才能得到作为某个动词宾语的名词从句? 7 年前 |
![]() |
Thoc theodox · Spacy培训多线程CPU使用率 7 年前 |
![]() |
Marc P. · 文本分类TA的训练样本数 7 年前 |
![]() |
jamesk · 在空间中识别“it”主题 7 年前 |