.net 자연어처리 (문장 유사도 비교)

C#으로 국문에 대한 NLP가 필요합니다.
예를 들어,

슈퍼로봇대전에 제네식 가오가이가가 참전합니다.

슈퍼로봇대전에 인피니티 마징카이저가 참전합니다.

는 슈퍼로봇대전이라는 곳에 어떤 것이 참전한다는 내용은 일치하지만 '제네식 가오가이가’와 '인피니티 마징카이저’는 다르기 때문에 다른 문장이라고 판별하고 싶고,

슈퍼로봇대전에 인피니티 마징카이저가 참전합니다.

슈퍼로봇대전에 마징카이저가 참전합니다.

는 다르긴하지만 '마징카이저’라는 종류가 같으므로 같은 문장으로 처리하고 싶습니다.

찾아보니 레펜슈타인 거리 측정 알고리즘 및, TextRank 알고리즘 같은 것이 있는 듯한데, 국문에 대해서도 가능한지 모르겠습니다.

아래 링크를 참고 했었지만 잘 이해가 가지 않습니다…
https://lovit.github.io/nlp/2018/08/28/levenshtein_hangle/

특히 바로 위의 깃허브 페이지는 소스를 다운받아 실행했지만 뭐가 누락되었던건지 특정 폴더를 참조하고 있더군요…

혹시 .NET으로 자연어처리 있으신 분의 경험을 여쭙니다.

2개의 좋아요

이 지점이 닷넷이 아직 생태계가 약하게 보이는 부분인데요, 안타깝게도 닷넷만으로 구현체가 존재하진 않습니다.

대신 KoNLPy: 파이썬 한국어 NLP — KoNLPy 0.6.0 documentation 등의 구현체를 검토해보시고, 이걸 interop할 수 있는 방법을 찾아보시는것을 추천드립니다.

여기서 중요한것은 처리하고자 하는 문제를 실제로 잘 풀수 있는 성능이니까요.

2개의 좋아요

아…역시 이 사이트 밖에 없나보군요 ㅠㅠ 여기도 발견하긴 했었는데 Python이라서 .NET 구현체를 찾아다녔었습니다…

답변 감사드립니다!!

2개의 좋아요

참고로 ironpython 같은 닷넷용 파이썬 런타임이 있지만, 오리지널 파이썬과 격차가 커서 추천하긴 어렵습니다. 3.4 버전이 이제 알파가 출시되었는데, 현재 파이썬은 3.9가 메인 스트림이니까요.

2개의 좋아요