SRC*_*SRC 1 python parsing nlp spacy
我被一个基本的事情困住了,但我不知道如何让它发挥作用。如果这是非常基本的东西,我很抱歉。只是我对 Spacy 很陌生,不知道该怎么做。在互联网上也找不到任何资源。
我有很多这样的句子
a = "<sos> Hello There! <eos>"
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码行使用 Spacy 对其进行标记
import spacy
nlp = spacy.load('en_core_web_sm')
for token in nlp(a):
print(token.text)
Run Code Online (Sandbox Code Playgroud)
它打印的内容是这样的
<
sos
>
Hello
There
!
<
eos
>
Run Code Online (Sandbox Code Playgroud)
如您所见,它解析了<sos>和<eos>元标记。我怎样才能避免这种情况?我希望看到的输出类似于以下内容
<sos>
Hello
There
!
<eos>
Run Code Online (Sandbox Code Playgroud)
我不知道如何实现这一目标。任何帮助都会很棒。
提前致谢
小智 5
在 spaCy 中,分词器在分割文本之前检查异常。您需要向标记生成器添加例外,以将符号视为完整标记。
您的代码应如下所示:
import spacy
from spacy.attrs import ORTH, LEMMA
sent = "<sos> Hello There! <eos>"
nlp = spacy.load('en_core_web_sm')
nlp.tokenizer.add_special_case('<sos>', [{ORTH: "<sos>"}])
nlp.tokenizer.add_special_case('<eos>', [{ORTH: "<eos>"}])
for token in nlp(sent):
print(token.text)
Run Code Online (Sandbox Code Playgroud)
您可以在这里阅读更多相关信息: https ://spacy.io/api/tokenizer#add_special_case
| 归档时间: |
|
| 查看次数: |
638 次 |
| 最近记录: |