J'ai eu du mal comme ça, donc je vais le poster pour le moment. Il y a peut-être un meilleur moyen. Si vous êtes un débutant comme moi, veuillez vous y référer.
L'environnement est python 3.6.9 et Ubuntu 18.04.4.
change_NER.py
# coding:utf-8
import spacy
with open('input.txt','r') as f:
nlp = spacy.load('ja_ginza')
data = f.read()
doc = nlp(data)
with open('output.txt','w') as f:
text = list(data) #Enregistrer le personnage dans la liste
entity = [ent.label_ for ent in doc.ents] #Étiquette d'expression unique
start = [ent.start_char for ent in doc.ents] #De quel caractère est l'expression unique
end = [ent.end_char for ent in doc.ents] #Combien de caractères sont des expressions uniques
num = 0
stop = False
for i in range(len(text)):
if i == start[num]:
f.write(entity[num])
if num < len(start) - 1: #Prévention hors de portée
num += 1
stop = True
elif stop == True:
if i < end[num-1]: #Seul le nombre de caractères dans l'expression unique
continue #Consommer je
elif i == end[num-1]:
stop = False
f.write(text[i])
else:
f.write(text[i])
Recommended Posts