我有兩個文件進行比較,一個文件中的單詞被分割成另一個文件的多個段。我需要找到一種方法來映射與原始單詞/短語段。兩個文件之間的兩個時間戳之間的數據組合
在給定的文件中,我使用中文單詞的時間開始和時間結束,並比較了在此時間戳下打印併爲中文單詞打印這些值的電話。
我使用的文件是:
參考文件:https://ufile.io/7lze7
段的文件:https://ufile.io/rysz4
到目前爲止我曾嘗試的代碼:
outfile=open("lexlog",'w')
phoneme=[]
with open("ref.txt"+file,'r') as sylfile:
for lines in sylfile:
start,end,syl=lines.split()
#print "from syl "+start,end
with open("hyp.txt", 'r') as phnfile:
for line in phnfile:
startphn, endphn, sylphn = line.split()
if (startphn>=start) and (endphn<=end) and (startphn<endphn):
phoneme.append(sylphn)
print `enter code here`sylphn
outfile.write(startphn+" "+start+" "+endphn+" "+end)
print file,syl,' '.join(phoneme)
outfile.write(file+" "+syl+" "+' '.join(phoneme)+"\n")
phoneme=[]
我期望的結果是在形式:
ref.txt !SIL SIL
ref.txt 非 F EI
ref.txt 生 SH AH NG
ref.txt 物 U
ref.txt 物 U
ref.txt 體 T I
ref.txt 也 I E
ref.txt 會 H U EI
ref.txt 有 I OU
ref.txt 一 I
ref.txt 種 ZH O NG
ref.txt 被 B EI
ref.txt 稱 CH AH NG
ref.txt 作 Z U O
ref.txt 自 Z IH
ref.txt 殺 SH A
ref.txt 的 D AH
ref.txt 設 SH AH
ref.txt 計 J I
ref.txt !SIL SIL
ref.txt 例 L I
ref.txt 如 R U
ref.txt !SIL SIL
ref.txt 人 R AH N
ref.txt 工 G O NG
ref.txt 智 ZH IH
ref.txt 慧 H U EI
ref.txt !SIL SIL
ref.txt 在 Z AI
ref.txt 被 B EI
ref.txt 電 D I E N
ref.txt 腦 N AU
ref.txt 病 B I NG
ref.txt 毒 D U
ref.txt 入 R U
ref.txt 侵 Q I N
ref.txt 的 D AH
ref.txt 情 Q I NG
ref.txt 況 K U A NG
ref.txt 下 X I A
ref.txt !SIL SIL
ref.txt 會 H U EI
ref.txt 啟 Q I
ref.txt 動 D O NG
ref.txt 殺 SH A
ref.txt 毒 D U
ref.txt 程 CH AH NG
ref.txt 系 X I
ref.txt !SIL SIL
ref.txt 同 T O NG
ref.txt 時 SH IH
ref.txt 刪 SH A N
ref.txt 除 CH U
ref.txt 自 Z IH
ref.txt 己 J I
ref.txt 體 T I
ref.txt 內 N EI
ref.txt 的 D AH
ref.txt 檔 D A NG
ref.txt 案 A N
ref.txt !SIL SIL
但輸出是:
ref.txt !SIL SIL
ref.txt 非 F EI
ref.txt 生 SH AH NG
ref.txt 物 U
ref.txt 物 U
ref.txt 體 T I
ref.txt 也 I E
ref.txt 會 H U EI
ref.txt 有 I OU A D U CH AH NG X I SIL T O NG SH IH SH A N CH U Z IH J I T I N EI D AH D A NG A N SIL
ref.txt 一 I
ref.txt 種 ZH O NG
ref.txt 被 B EI
ref.txt 稱 CH AH NG
ref.txt 作 Z U O
ref.txt 自 Z IH
ref.txt 殺 SH A
ref.txt 的 D AH
ref.txt 設 SH AH
ref.txt 計 J I
ref.txt !SIL SIL
ref.txt 例 L I
ref.txt 如 R U
ref.txt !SIL SIL
ref.txt 人 R AH N
ref.txt 工 G O NG
ref.txt 智 ZH IH
ref.txt 慧 H U EI
ref.txt !SIL SIL
ref.txt 在 Z AI
ref.txt 被 B EI
ref.txt 電 D I E N
ref.txt 腦 N AU
ref.txt 病 B I NG
ref.txt 毒 D U
ref.txt 入 R U
ref.txt 侵 Q I N
ref.txt 的 D AH
ref.txt 情 Q I NG
ref.txt 況 K U A NG
ref.txt 下 X I A
ref.txt !SIL SIL
ref.txt 會 H U EI
ref.txt 啟 Q I
ref.txt 動 D O NG
ref.txt 殺
ref.txt 毒 D U
ref.txt 程 CH AH NG
ref.txt 系 X I
ref.txt !SIL SIL
ref.txt 同 T O NG
ref.txt 時 SH IH
ref.txt 刪 SH A N
ref.txt 除 CH U
ref.txt 自 Z IH
ref.txt 己 J I
ref.txt 體 T I
ref.txt 內 N EI
ref.txt 的 D AH
ref.txt 檔 D A NG
ref.txt 案 A N
ref.txt !SIL SIL
不知何故,輸出中的第八行獲得了與我預期不同的結果。任何幫助表示讚賞。
部分是你比較字符串。你的前兩列需要轉換爲浮點數。例如'row = line.split()'和'startphn,endphn,sylphn = float(row [0]),float(row [1]),row [2]' –