[英]How to get the output to be printed in the right form to the file?
我有一份文件清單。 像這樣:
['nn', 'known', "tsutsumi's", 'father', 'yasujiro', 'sowed', 'seeds', "family's", 'dominion']
['un', 'secretary', 'general', 'kofi', 'annan', 'appointed', 'special', 'representative', 'iraq', 'help', 'improve', 'communication', 'iraqi', 'leaders']
['confidence', 'debate', 'repeatedly', 'chided', 'opposition', 'speakers', 'joining', 'groups', 'bitter', 'critics', 'nationalists', 'past']
每個文檔都是一個字符串列表。
我正在對這些文檔進行一些預處理,其中要刪除區分這些詞的后綴。
這是我的代碼:
results=[]
with open('/Users/mtr/Documents/Stemtry.txt') as filer:
for line in filer:
results.append(line.strip().split())
result=[]
final=[]
temp=[]
def stemm(n):
for suffix in ['ing', 'ly', 'ed', 'ious', 'ies', 'ive', 'es', "'s", 'ment', "s", "'ve", "'t", "'"]:
if n.endswith(suffix):
return n[:-len(suffix)]
return n
for eachitem in results[:10]:
for n in eachitem:
r=stemm(n)
final.append(r)
print(final)
result.append(final)
datafile=open("Stemmingg.txt", "w")
for each in result:
for every in each:
datafile.write(each+' ')
datafile.write("\n")
print(datafile)
datafile.close()
我的問題是,刪除后綴后,該程序會將所有文檔的所有單詞放入一個大列表中。 但是,我希望它們在預處理后以原始形式(即以前的文檔列表)返回。 我應該如何修改代碼?
您是要在文檔的每一行的每個單詞上運行stemm()嗎?
這是代碼:
final = [[stemm(x) for x in line] for line in result]
您的決賽不斷累積。 在外循環中重新定義它:
for eachitem in results[:10]:
final = []
for n in eachitem:
r=stemm(n)
final.append(r)
result.append(final)
甚至更好,請使用列表理解 :
for eachitem in results[:10]:
final = [stemm(n) for n in eachitem]
result.append(final)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.