2017-07-14 65 views
0

我正在處理對Python中AppStore評論的分析。我從給定的評論中生成了我想要保存的句子位置,例如(60:75)。我必須這樣做,因爲我的文件奇怪的XML格式。如何從Python中的字符串中刪除像「/ xC3」這樣的特殊字符,同時保持字符串的長度相同

現在,當我想收集他們,我找到了一些編碼問題的位置漂移。我發現問題出現在特殊字符(例如一些西班牙字母 -/xC3)中。

我想擺脫他們,但支持相同的字母的位置和長度的句子。例如將「é」更改爲「e」。

dropbox.txt - 附有評論文本文件

dropbox.xml - 從門開發的XML文件

的StartNode是通緝句子的第一個字符的位置,最後一個字符終端節點

import xml.etree.ElementTree as ET 

with open("Output/Reviews/dropbox.txt", 'r') as myfile: 
    data = myfile.read() 
tree = ET.parse("Output/Reviews/dropbox.xml") 
root = tree.getroot() 

positions = [] 

for AnnotationSet in root.findall("AnnotationSet"): 
    for Annotation in AnnotationSet: 
     positions.append((Annotation.attrib["StartNode"], Annotation.attrib["EndNode"])) 
for tuple in positions: 
    print data[int(tuple[0]):int(tuple[1])], tuple 

示例:

第一段中的位置正確,但在第二段之後,它們向前移動了一個位置。

更新:已經有一個或兩個更新,因爲我寫我原來 審查,這些問題仍然沒有得到解決。

Faltan algunas COSAS AUN POR mejorar佩羅relativamente ES布埃納

不必去一個文件夾內, 使每個單獨的文件脫機是有點麻煩,當我需要 整個文件夾脫機。

回答

2

你處理它作爲一個字節字符串,並且其中一些字符表示爲兩個字節,所以當你切它通過字節這樣做並沒有對應的字符數。

您需要將您的字符串轉換爲Unicode字符串,如

reviewunicode = reviewtext.decode('utf-8')

+0

謝謝,它的工作,但現在看來,表情符號,導致接下來的問題是: [...]這是一個巨大當你必須下載到手機 <這裏它向前移動一個字符> 有人剛與我分享圖片,它說我必須下載該應用程序。 [...] –

相關問題