다음 파일에 500.000 줄이 넘습니다. 선이 다음과 같이 각 튜플빠른 방법으로 사전 만들기 - Python
0-0 0-1 1-2 1-3 2-4 3-5
0-1 0-2 1-3 2-4 3-5 4-6 5-7 6-7
0-9 1-8 2-14 3-7 5-6 4-7 5-8 6-10 7-11
, 첫 번째 숫자는 텍스트 동일한 라인 N하지만상의 워드의 인덱스 라인 N 문자 A의 두 번째 자리 워드의 인덱스를 나타낸다 비. 또한 텍스트 a의 동일한 단어가 텍스트 b의 여러 단어에 연결될 수 있음을 지적 할 가치가 있습니다. 인덱스 0의 라인의 경우와 같이, 텍스트 a의 위치 0에있는 단어는 텍스트 b의 위치 0과 1에있는 두 단어에 연결됩니다. 이제 텍스트의 어느 단어가 텍스트의 어느 단어에 연결되어 있는지 쉽게 검색 할 수 있도록 위의 행에서 정보를 추출합니다. b. 내가 생각하는 다음 코드와 같이 사전을 사용하고 있습니다 :
#suppose that I have opened the file as f
for line in f.readlines():
#I create a dictionary to save my results
dict_st=dict()
#I split the line so to get items like '0-0', '0-1', etc.
items=line.split()
for item in align_spl:
#I split each item at the hyphen so to get the two digits that are now string.
als=item.split('-')
#I fill the dictionary
if dict_st.has_key(int(als[0]))==False:
dict_st[int(als[0])]=[int(als[1])]
else: dict_st[int(als[0])].append(int(als[1]))
모든 텍스트에서 단어의 대응과 관련 infromation 추출 후, 나는 다음 서로 정렬 된 단어를 인쇄 할 수 있습니다. 이제이 방법은 매우 느립니다. 특히 500,000 개가 넘는 문장에서 반복해야한다면 더욱 그렇습니다. 나는이 정보를 추출하는 더 빠른 방법이 있는지 궁금해하고 있었다. 감사합니다.
'has_key'를 사용하지 말라. 'int (als [0])가 dict_st :에 없으면'괜찮습니다. –
'align_spl'이란 무엇입니까? –