Python Spacy BILOU格式到Spacy json格式
我正在尝试升级我的spacy版本到nightly,特别是使用spacy transformers 所以我转换了spacy简单的火车数据集,格式如下Python Spacy BILOU格式到Spacy json格式,python,spacy,spacy-pytorch-transformers,Python,Spacy,Spacy Pytorch Transformers,我正在尝试升级我的spacy版本到nightly,特别是使用spacy transformers 所以我转换了spacy简单的火车数据集,格式如下 td=[“谁是沙卡·汗?”,{“实体”:[(7,17,“朋友”)],“我喜欢伦敦,{“实体”:[(7,13,“LOC”)],] 高于 [{head:0,“dep”:“tag”:“or”:“Who”,“ner”:“O”,“id”:0},{“head:0”,“dep”:“tag”:“or”:“is”,“ner”:“O”,“id”:1},{“head”:0
td=[“谁是沙卡·汗?”,{“实体”:[(7,17,“朋友”)],“我喜欢伦敦,{“实体”:[(7,13,“LOC”)],]
高于
[{head:0,“dep”:“tag”:“or”:“Who”,“ner”:“O”,“id”:0},{“head:0”,“dep”:“tag”:“or”:“is”,“ner”:“O”,“id”:1},{“head”:0,“dep”:“tag”:“th”:“Shaka”,“ner”:“B-FRIENDS”,“id”:2},{“head:0”,“dep”:“tag”:“tag”:“th”:“Khan”,“ner”:“L-FRIENDS”,“id”:3},{“head”:0,“dep”:“tag,“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”、“或”
使用以下脚本
sentences = []
for t in td:
doc = nlp(t[0])
tags = offsets_to_biluo_tags(doc, t[1]['entities'])
ner_info = list(zip(doc, tags))
tokens = []
for n, i in enumerate(ner_info):
token = {"head" : 0,
"dep" : "",
"tag" : "",
"orth" : i[0].orth_,
"ner" : i[1],
"id" : n}
tokens.append(token)
sentences.append(tokens)
with open("train_data.json","w") as js:
json.dump(sentences,js)```
then i tried to convert this train_data.json using
spacy's convert command
```python -m spacy convert train_data.json converted/```
but the result in converted folder is
```✔ Generated output file (0 documents): converted/train_data.spacy```
which means it doesn't created dataset
can anybody help on what i am missing
i am trying to do this with spacy-nightly
您可以跳过中间JSON步骤,直接将注释转换为DocBin
导入空间
从spacy.training导入示例
从spacy.tokens导入DocBin
td=[“谁是沙卡·汗?”,{“实体”:[(7,17,“朋友”)],“我喜欢伦敦。”,{“实体”:[(7,13,“LOC”)],]
nlp=空间空白(“en”)
db=DocBin()
对于文本,td中的注释:
示例=示例。来自目录(nlp.make文档(文本),注释)
db.add(example.reference)
数据库到磁盘(“td.spacy”)
见:
(如果您确实想使用中间JSON格式,以下是规范:。您可以只在标记中包含ORH
和ner
,而不包含其他功能,但是您需要这种包含段落
、原始
和句子的结构。这里有一个示例:)您可以跳过中间JSON步骤,直接将注释转换为DocBin
导入空间
从spacy.training导入示例
从spacy.tokens导入DocBin
td=[“谁是沙卡·汗?”,{“实体”:[(7,17,“朋友”)],“我喜欢伦敦。”,{“实体”:[(7,13,“LOC”)],]
nlp=空间空白(“en”)
db=DocBin()
对于文本,td中的注释:
示例=示例。来自目录(nlp.make文档(文本),注释)
db.add(example.reference)
数据库到磁盘(“td.spacy”)
见:
(如果您确实想使用中间JSON格式,以下是规范:。您可以只在标记中包含ORH
和ner
,而不包含其他功能,但是您需要这种包含段落
、原始
和句子的结构。这里有一个示例:)@abb感谢您的回复,但当我打印(示例参考)时,我有一个疑问,我只能看到“谁是沙卡·汗?”?我喜欢伦敦。但是它不是预期的,或者是有什么错误的示例。reference
是一个Doc
,所以print(Doc)
只显示Doc.text
。查看doc.ents
以查看实体。@abb感谢您的报告,但当我打印(示例.参考)时我有一个疑问,我只能看到“谁是沙卡·汗?我喜欢伦敦。但这不是预期的情况,或者是有什么问题示例。参考是文档
,所以打印(doc)
只显示doc.text
。查看doc.ents
查看实体。