-1
def dot(x, y):
return sum([ x[i]*y[i] for i in range(1,10)])
def magnitude(x):
return math.sqrt(sum([x[i]*x[i] for i in range(1,10)]))
def cosine_similarity(x, y):
x = dot(x, y)/(magnitude(x)*magnitude(y))
print(x)
print(math.acos(x))
return math.acos(x)/math.pi
이것은 내 파이썬 코드입니다. 두 벡터 사이의 각도를 목록으로 표시하려고합니다. 이 코드를 실행하면 출력은 다음과 같습니다파이썬 math.acos의 도메인 오류가 유효한 입력 인 경우
1.0
Traceback (most recent call last):
File "problem5.py", line 64, in <module>
print(cosine_similarity(reservoir[0][0], reservoir[0][0]))
File "problem5.py", line 41, in cosine_similarity
print(math.acos(x))
ValueError: math domain error
내가 math.acos (1.0) 내 콘솔에 입력하거나 파일을 경우 정확하게 내게 유형 검사 등을 수행 한 0을 제공하고 모든 것 체크 아웃.
'x'매개 변수를 덮어 쓰고 있습니다. 그것을 피하십시오 –
해당 코드를 실행해도 아무 것도 보이지 않습니다. 'cosine_similarity()'함수를 호출하고 에러를주는 코드를 보여주십시오. 참조 [최소의 완전하고 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve). –
어떤 버전의 파이썬입니까? –