위경도로 거리구하기
from math import sin, cos, sqrt, atan2, radians
# approximate radius of earth in km
def getDistance(_lat1,_lon1,_lat2,_lon2):
R = 6373.0
lat1 = radians( float(_lat1) )
lon1 = radians( float(_lon1) )
lat2 = radians( float(_lat2) )
lon2 = radians( float(_lon2) )
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat / 2)**2 + cos(lat1) * cos(lat2) * sin(dlon / 2)**2
c = 2 * atan2(sqrt(a), sqrt(1 - a))
distance = R * c
return distance
dist = getDistance(52.2296756,21.0122287,52.406374,16.9251681)
a=999
문장간 유사도측정(edit distance)
def edit_distance(_first , _second):
first = _first.replace(' ','')
second= _second.replace(' ','')
first_len = len(first)
second_len = len(second)
if first_len > second_len :
first , second = second , first
first_len , second_len = second_len , first_len
current = range(first_len+1)
for i in range(1,second_len+1):
previous , current = current , [i]+[0]*second_len
for j in range(1,first_len+1):
add , delete = previous[j]+1 , current[j-1]+1
change = previous[j-1]
if first[j-1] != second[i-1]:
change = change + 1
current[j] = min(add , delete , change)
return current[first_len]
sFirstStr = sys.argv[1]
sSecondStr = sys.argv[2]
sFirst = unicode(sFirstStr,'cp949')
sSecond = unicode(sSecondStr,'cp949')
nDistanceValue = edit_distance(sFirst,sSecond)
print(nDistanceValue)