词性标注对象写出_思路
获取词语的标注信息,并更新词语编号信息
1. 获取语言一的标注信息
a) 读入对象temp,加载临时文件。加载语言一的词语编号:
E:\Workspaces\extractLexicon1119\workfiles\langOneWordID.dic
b) 读入文件langOnePOS,加载语言一语料库文档的标注信息,utf-8编码:
E:\Workspaces\extractLexicon1119\workfiles\corpus\lang1-utf8.pos
c) 获取标注信息,以文档为单位,存至字符串数组langOnePOSOfDoc:
d) 删除过短(文本少于30行)的文档,未删除的标注信息保存至langOnePosOfDocToSave:ArrayList
e) 保存语料库中的文档数目: lang1- numOfLangOneDocs
f) 获取所有的词语信息
g) 更新编号
h) 将当前文档的信息添加到整个对象中去
.dic
读入到Object : temp --> 转成(word, id)HashMap<String, Integer> : langOneWordID;
.pos
b、读入到String
c、 用XXXYYYZZZ\tN[N|P]\tXXXYYYZZZ\r\n\\.\tSENT\t\\.\r\n分割 成String []: langOnePOSOfDoc
d、删短,留长ArrayList<String>:langOnePosOfDocToSave --> f、取标注信息String : posForCurrentDoc --> 按行分割成String []: wordAndPos --> 遍历字串数组,按tab分割成String []: parts --> parts长为3时,将parts[2]加到词典中所有单词HashSet<String>: allLangOneWords中
e、parts为3,非空行数(int : countOfLines)加一,同时,以小写字母保存单词parts[2]:langOneWordID调用containsKey方法,get获取对应currentWordID,不包含该单词,将其和(currentWordID=-1)一起添加到langOneWordID中 --> 标准信息posInfoOfCurrentDoc保存到posOfAllLangOneDocs:posInfoOfCurrentDoc[index][0](pos)和posInfoOfCurrentDoc[index][1] (posID)
所有的标注信息:
1. [X][0] 表示词语 ID, [X][1] 表示标注信息;
2. int : posInfoOfCurrentDoc[index][0]--pos ( parts[1]) 为标注信息, noun.=1 (NN/NP、NOM), verb.=2 (VB、VER), adj.=3 (JJ、ADJ), adv.=4 (RB、ADV), SENT =5 (SENT、SENT), other=-1 (未知、<unknown>) , String单词对应的id号;
3. int : posInfoOfCurrentDoc[index][1] -- posID (1,2,3,4,5,-1)
corpus --> lang-all --> <DOC><...><TEXT></TEXT></DOC> --> StringBuilder -->
parts[1]=pos; parts[2]=word; parts[3] parts[4] parts[5]
某单词信息:编号id,单词本身word, 词性pos
a) 单词信息 HashSet<String>:allLangOneWords(单词)
b) 词语的编号信息 HashMap<String, Integer> :langOneWordID(单词;id号)
c) 词语的标注信息 ArrayList<int[][]>:posOfAllLangOneDocs (二维数组:index行,0列:单词的id号; index行,1列:posID号)
2. 获取语言二的标注信息
3. 写对象,保存标注信息(语言x单词对象,语言x的ID信息)
a) E:\Workspaces\extractLexicon1119\workfiles\allLangOneWords
b) E:\Workspaces\extractLexicon1119\workfiles\langOneWordID
4. 写对象,保存语料库信息
a) ArrayList<int[][]>: langOnePos
b) E:\Workspaces\extractLexicon1119\workfiles\posOfLangOneDocs