我正试图通过提到的https://nlp.stanford.edu/software/crf-faq.html训练我自己的中国NER模型。我将数据转换为每行一个中文字符,并在字符后标记实体,它喜欢:
红ORG
帽ORG
首O
席O
执行O行O
官O
Jim PERSON
怀特赫斯特人曾O
表O
示O
,O
亚ORG
马ORG
逊ORG
公O
共O
云O
有O
许O
多O
使用命令Range
后,它最终生成了classfier(chinese.misc.distsim.crf.ser.gz)。然后我检查了classfier它如何在带注释的测试数据上工作,我使用命令Content-Range
,它似乎工作。
但是当我使用命令java -cp stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -prop tech.prop
通过文本段落检查分类器而不是注释的测试数据时,似乎分类器没用,它不识别单词分段的中文。
我训练新的中国NER模型时有什么问题吗? 我认为一个可能的问题是我将训练数据转换为每行一个汉字。事实上在中文中,一个汉字不是中文单词,我应该使用单词分段的中文训练数据,并将数据转换为每行一个中文单词,然后标记中文单词而不是中文单词。
答案 0 :(得分:0)
可能对处理不同类型的文本输入有用的标志是:
import json
import base64
import urllib.request
personal_access_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
headers = {}
headers['Content-type'] = "application/json"
headers['Authorization'] = b'Basic ' +
base64.b64encode(personal_access_token.encode('utf-8'))
instance = "mycompany.visualstudio.com"
project = "MyProject"
repository ="MyRepository"
pullrequest = "3468"
api_version = "3.0"
repositories_url = ("https://%s/DefaultCollection/%s/_apis/git/repositories?
api-version=%s" % (instance, project, api_version))
print(repositories_url)
request = urllib.request.Request(repositories_url, headers=headers)
opener = urllib.request.build_opener()
response = opener.open(request)
print(response.read())
这也可能有用: https://stanfordnlp.github.io/CoreNLP/human-languages.html
除此之外,您还应该看看SeqClassifierFlags中的中文分词功能。