2014-12-18 1 views
-1

나는 2 개의 거리 네트워크를 비교하려고합니다.이 코드를 실행하면 .253529의 비율이 반환됩니다 ... 고유 한 값을 얻기 위해 각 행을 비교해야하므로 쿼리 할 수 ​​있습니다. 일치하지 않는 거리 밖으로. 행마다 고유 비율 값을 반환하려면 어떻게해야합니까? 당신은 항상 두 파일을 모두 알고있는 라인의 동일한 숫자, 이런 간단한 방법이있는 경우difflib.SequenceMatcher 고유 비율을 반환하지 않습니다

# Set local variables 
inFeatures = gp.GetParameterAsText(0) 
fieldName = gp.GetParameterAsText(1) 
fieldName1 = gp.GetParameterAsText(2) 
fieldName2 = gp.GetParameterAsText(3) 
expression = difflib.SequenceMatcher(None,fieldName1,fieldName2).ratio() 

#은

+0

무엇이 질문입니까? gp는 무엇입니까? – user823743

+0

"고유 가치"란 무엇입니까? 원하는 출력의 예를 우리에게주세요 – wnnmaw

+0

두 거리 이름 사이의 유사점에 대한 색인 값을주고 싶습니다. 예를 들어 fieldname1이 Broad Street이고 fieldname 2가 Broad Street이면 출력은 1입니다 .fieldname1이 Braod Sreet이고 fieldname 2가 Broad St 인 경우 결과는 1보다 낮습니다. –

답변

0

("PYTHON_9.3을"inFeatures, fieldName에, 표현) CalculateField arcpy.CalculateField_management을 실행 일을 할 것은 :

[("aa", "aa", 1), ("aa", "ab", 0.5), ...] 
:

ratios = [] 

with open('fieldName1', 'r') as f1, open('fieldName2', 'r') as f2: 
    for l1, l2 in zip(f1, f2): 
     R = difflib.SequenceMatcher(None,l1,l2).ratio() 
     ratios.append((l1, l2, R)) 

이이 같은 튜플의리스트를 생성합니다

파일의 크기가 다른 경우 줄을 맞추거나 처리하는 방법을 찾아야합니다.

관련 문제