据Spacy称,使用Spacy的日语标记化仍处于研究阶段
alpha phase
.
标记化的理想方法是为标记化的单词列表提供与语言结构有关的信息。例如,对于一个英语句子,你可以试试这个
import spacy
nlp = spacy.load("en") # execute "python -m spacy download en" before this on standard console
sentence = "Writing some answer on stackoverflow, as an example for spacy language model"
print(["::".join((word.orth_, word.pos_)) for word in nlp(sentence)])
## <OUTPUT>
## ['Writing::VERB', 'some::DET', 'answer::NOUN', 'on::ADP', 'stackoverflow::NOUN', ',::PUNCT', 'as::ADP', 'an::DET', 'example::NOUN', 'for::ADP', 'spacy::ADJ', 'language::NOUN', 'model::NOUN']
这些结果目前还不适用于日语。
python -m spacy download xx
和使用
nlp = spacy.load("xx")
,它尽力去理解
named entities
此外,如果您查看spacy的源代码
here
,您将看到令牌化是可用的,但它只带来了
make_doc
函数,这很幼稚。
注意:spacy的pip版本仍然是旧代码,github的上述链接仍然有一些最新代码。
因此,对于构建令牌化,目前强烈建议使用
janome
下面给出了一个示例
from janome.tokenizer import Tokenizer as janome_tokenizer
sentence = "æ¥æ¬äººã®ãã®ã¨è¦ããããå»¶ã¹ï¼åä»¶ã®ã¡ã¼ã«ã¢ãã¬ã¹ã¨ãã¹ã¯ã¼ããéãµã¤ãã§è²©å£²ããã¦ãããã¨ããããã¾ãããéå»ã«æ¼ãããããã¼ã¿ãéãããã®ã¨è¦ããã調æ»ã«å½ãã£ãã»ãã¥ãªãã£ã¼ä¼æ¥ã¯ãæ¥æ¬ãçã£ããµã¤ãã¼æ»æã®ãã£ããã«ãªãããããããã¨ãã¦æ³¨æãå¼ã³ããã¦ãã¾ãã"
token_object = janome_tokenizer()
[x.surface for x in token_object.tokenize(sentence)]
## <OUTPUT> ##
## ['æ¥æ¬äºº', 'ã®', 'ãã®', 'ã¨', 'è¦', 'ããã', 'ã', 'å»¶ã¹', 'ï¼', 'å', 'ä»¶', 'ã®', 'ã¡ã¼ã«ã¢ãã¬ã¹', 'ã¨', 'ãã¹ã¯ã¼ã', 'ã', 'é', 'ãµã¤ã', 'ã§', '販売', 'ã', 'ã', 'ã¦', 'ã', 'ã', 'ãã¨', 'ã', 'ããã', 'ã¾ã', 'ã', 'ã', 'éå»', 'ã«', 'æ¼ãã', 'ã', 'ã', 'ãã¼ã¿', 'ã', 'éã', 'ã', 'ãã®', 'ã¨', 'è¦', 'ãã', 'ã', '調æ»', 'ã«', 'å½ãã£', 'ã', 'ã»ãã¥ãªãã£ã¼', '伿¥', 'ã¯', 'ã', 'æ¥æ¬', 'ã', 'çã£', 'ã', 'ãµã¤ãã¼', 'æ»æ', 'ã®', 'ãã£ãã', 'ã«', 'ãªã', 'ã', 'ãã', 'ã', 'ãã', 'ã¨ãã¦', '注æ', 'ã', 'å¼ã³ãã', 'ã¦', 'ã', 'ã¾ã', 'ã']
## you can look at
## for x in token_object.tokenize(sentence):
## print(x)
## <OUTPUT LIKE>:
## æ¥æ¬äºº åè©,ä¸è¬,*,*,*,*,æ¥æ¬äºº,ãããã³ã¸ã³,ãããã³ã¸ã³
## ã® å©è©,é£ä½å,*,*,*,*,ã®,ã,ã
## ãã® åè©,éèªç«,ä¸è¬,*,*,*,ãã®,ã¢ã,ã¢ã
## 㨠å©è©,æ ¼å©è©,å¼ç¨,*,*,*,ã¨,ã,ã
## ....
## <OUTPUT Truncated>
我认为spacy团队正在研究类似的输出,为日语构建模型,这样也可以为日语构建“特定于语言的”结构,类似于其他语言的结构。
使现代化
here
,
here
&
here
udpipe似乎支持50多种语言,就语言支持而言,它为我们在Spacy中看到的问题提供了解决方案。