我需要從荷蘭文本中提取主體 - 動詞 - 對象三元組。文本由名爲Frog的荷蘭NLP工具進行分析,該工具進行了標記,解析,標記,詞形化......等等。 Frog生成FoLiA XML或製表符分隔的列格式輸出,每個標記一行。由於XML文件存在一些問題,我選擇使用列格式。這個例子代表一個句子。 現在我需要提取每句SVO三元組,因此我需要最後一列是依賴關係。所以我需要獲取ROOT元素和屬於ROOT的su和obj1元素。不幸的是,例句中沒有obj1。讓我們假裝它已經。我的想法是首先爲每個句子創建一個帶有列表的嵌套列表。從預處理文本中提取SVO三元組
import csv
with open('romanfragment_frogged.tsv','r') as f:
reader = csv.reader(f,delimiter='\t')
tokens = []
sentences = []
list_of_sents = []
for line in reader:
tokens.append(line)
#print(tokens)
for token in tokens:
if token == '1':
previous_sentence = list_of_sents
sentences.append(previous_sentence)
list_of_sents = []
list_of_sents.append(tokens)
print(list_of_sents)
當我打印「令牌」,我得到一個列表中的所有令牌。所以這是正確的,但我仍然試圖創建一個嵌套列表,每個句子有1個列表(標記)。 有人可以幫我解決這個問題嗎?
(PS的第二個問題是,我不知道,該如何繼續,一旦我得到一個嵌套列表)
我認爲,對於初學者來說,輸入格式有些混亂。您鏈接到的工具網站表示輸出是XML。但是,圖像和你在「\ t」上分割的嘗試表明它是一個TSV(製表符分隔的純文本)文件。再說一遍,你聲稱它是一個Word文檔 - 大概是舊的二進制「.doc」版本,這將是所有選項中最糟糕的。請整理出來並更新問題。 – lenz
@lenz正如網站所說,有2個輸出選項'青蛙產生FoLiA XML,或製表符分隔的列格式化輸出,每個令牌一行'。由於XML文件存在一些問題,我選擇使用列格式。但是我保存爲.doc就像你說的那樣,將它保存爲.txt文件更好嗎? – Bambi
好的,我看到了 - 我想你實際上並沒有將它保存爲一個Word文檔,只是用一個文件名以「.doc」結尾。約定是使用「.tsv」或有時使用「.csv」。 – lenz