자연어 처리에 도움이 되는 9가지 도구 및 라이브러리

게시 됨: 2019-11-20

이전 게시물에서 NLP가 무엇인지, NLP를 실행하는 데 필요한 단계 및 NLP가 함께 작동하는 방식에 대해 논의했습니다.

이제 NLP에 대한 기본적인 이해와 이것이 콘텐츠 마케팅을 확장하는 데 어떻게 도움이 되는지 이해했으므로 시작하는 데 필요한 도구와 라이브러리에 대한 조사를 시작할 수 있습니다.

모든 유형의 NLP 작업을 위한 모든 종류의 도구가 있습니다. 그들 중 일부는 공개 소스 도구로, 대중에게 무료이며 자원 봉사자의 기여로 구축되었습니다. 다른 것들은 컴퓨팅 및 데이터 처리 분야의 유명 기업에서 제공하는 프리미엄입니다.

구글도 AI 게임에 뛰어든다.

그러나 도구와 라이브러리 목록을 살펴보기 전에 알아야 할 몇 가지 용어가 있습니다. 이 게시물에서 내가 Python, Java 및 Node를 참조하는 것을 보게 될 것입니다. 직업상 개발자가 아닌 경우 이것이 무엇이고 개발 팀이 일반적으로 무엇을 사용하는지 아는 것이 도움이 됩니다.

간단히 정의한 다음 NLP 전략을 수립하고 실행하는 데 도움이 되는 도구의 종류에 대해 이야기해 보겠습니다.

Python, Java 및 노드란 무엇입니까?

Python과 Java는 모두 오픈 소스 프로그래밍 언어이며 AI 및 NLP 애플리케이션을 빌드하는 데 사용됩니다. 오픈 소스 프로젝트용 소프트웨어 개발 호스트인 GitHub에 따르면 Python과 Java는 각각 3위와 2위 프로그래밍 언어입니다.

Node(또는 NodeJS)는 AI 및 NLP 도구가 JavaScript라는 다른 언어로 실행될 수 있도록 하는 프레임워크입니다. Java와 JavaScript는 같은 언어가 아닙니다.

노드는 JavaScript와 동의어가 되었습니다. 따라서 Node에서 실행되는 NLP 도구 및 라이브러리에 대해 이야기할 때 실제로는 JavaScript에서 실행된다는 의미입니다.

오픈 소스는 사용이 자유롭고 상대적으로 조작하기 쉬운 프로그래밍 언어 및 프레임워크를 말합니다. 개발자는 브랜드 요구 사항에 맞게 오픈 소스 NLP 도구 및 라이브러리를 사용자 지정할 수 있습니다.

그러나 오픈 소스가 항상 즉시 사용 가능한 솔루션과 함께 제공되는 것은 아니므로 작동하기 전에 많은 개발과 테스트가 필요할 수 있습니다.

프리미엄은 그 반대입니다. 이들은 구독 기반 도구 및 라이브러리입니다. 일반적으로 기존 인프라에 연결할 수 있는 즉시 사용 가능한 더 많은 옵션을 제공하므로 AI 개발을 막 시작하거나 무언가를 빠르게 배포하려는 경우에 유용할 수 있습니다.

NLP용 Python 도구 및 라이브러리

공간

SpaCy는 스스로를 "업계 최강의 자연어 처리"라고 부릅니다. 개발자가 다양한 NLP 프로젝트를 다룰 수 있게 해주는 텍스트 분석 라이브러리입니다. SpaCy는 52개 이상의 언어를 지원하며 명명된 엔티티 인식 및 PoS 태깅을 포함한 많은 기능과 같은 많은 기능을 포함하여 처리 속도와 정확성을 자랑스럽게 생각합니다.

자연어 도구 키트(NLTK)

NLTK는 잘 알려진 오픈 소스 NLP Python 라이브러리입니다. 의미 분석을 포함하여 텍스트 처리 및 자연어 이해에 도움이 되는 모든 종류의 라이브러리를 제공합니다.

그러나 깔끔한 것은 접근성에 대한 헌신입니다. NLTK 뒤에 있는 두뇌는 프로그래밍의 기초를 가르치는 심층 가이드를 제공하므로 초보자도 NLP를 시작할 수 있습니다.

그들의 사이트에 따르면 NLP 프로그래밍에 대한 접근 방식은 연구원, 학생 및 교사에게 유용한 도구입니다.

팀이 일반적인 프로그래밍 속도에 익숙하지 않은 경우 시작하는 것이 좋습니다.

텐서플로우

TensorFlow는 기계 학습 및 NLP에 관심이 있는 회사를 위한 종단 간 플랫폼입니다. python/C++로 작성되었으며 완전히 오픈 소스이며 개발자가 자신의 앱을 빌드하는 데 사용할 수 있는 다양한 라이브러리와 도구가 함께 제공됩니다.

Keras 및 기타 고급 모델과 같은 프레임워크와 통합되어 쉽고 빠르게 신경망을 구축합니다.

NLP용 노드 도구 및 라이브러리

NLP.js

NLP.js는 분석하는 텍스트의 언어를 추측할 수 있습니다. 심지어 Klingon을 인식하도록 훈련되었습니다! 이 도구는 번역 및 챗봇과 같은 비정형 데이터 애플리케이션에 적합합니다. 34개의 다른 언어를 식별하고 자연어 처리 분류기 및 자연어 생성 관리자를 포함합니다.

이 도구는 완전히 오픈 소스이며 전 세계 프로그래머의 기여에 의존합니다.

NLP용 Java 도구 및 라이브러리

아파치 오픈NLP

그들의 사이트에 따르면 Apache OpenNLP는 자원 봉사자가 작성한 NLP용 오픈 소스 도구입니다. "토큰화, 문장 분할, 품사 태깅, 명명된 엔터티 추출, 청킹, 구문 분석, 언어 감지 및 상호 참조 확인과 같은 가장 일반적인 NLP 작업을 지원합니다."

이러한 프로세스를 통해 개발자는 말이나 글의 일부를 분해하고 이해할 수 있는 앱을 만들 수 있습니다.

스탠포드 자연어 처리 그룹

Stanford는 통계, 규칙 기반 및 딥 러닝 NLP 도구를 비롯한 일부 언어 처리 도구를 대중에게 공개했습니다. 태그 지정 및 구문 분석을 위한 라이브러리와 번역을 위한 도구를 포함하여 사이트에 핵심 라이브러리 및 도구의 전체 목록이 있습니다.

그러나 그들의 제품이 오픈 소스이지만 독점 도구에서 사용하기 전에 상용 라이선스에 대해 Stanford에 문의해야 한다는 점에 유의하는 것이 중요합니다.

기타 NLP 도구

AWS

Amazon Deep Learning AMI는 사용하는 프로그래밍 언어에 관계없이 NLP를 실행할 수 있는 도구를 제공하는 프리미엄 서비스입니다. 또한 Keras 및 TensorFlow를 포함하여 앞서 언급한 여러 기존 딥 러닝 프레임워크와도 작동합니다.

IBM 왓슨

이 시점에서 Watson에 대해 들어본 적이 있을 것입니다. 그것이 Jeopardy!에서 우승한 AI 기계입니다. 그러나 Watson은 NLP용 도구와 라이브러리도 제공합니다. Python, Node 또는 Java용 패키지를 다운로드하여 챗봇을 구축하고 소셜 미디어에서 감정 분석을 수행하거나 온라인 리뷰를 분석하는 등의 작업을 수행할 수 있습니다.

Google Cloud 자연어

GCP에는 자연어 처리를 위한 두 가지 옵션이 있습니다. 첫 번째는 개발자가 기존 문서를 업로드하여 도구를 교육한 다음 배포하여 여러 NLP 작업을 수행하는 AutoML Natural Language입니다. AI, 딥 러닝 또는 NLP에 대한 경험이 많지 않은 개발자를 위한 것입니다.

Google은 또한 숙련된 개발자가 텍스트 분석, 감정 분석 및 번역 도구를 직접 만들고 사용할 수 있도록 하는 Natural Language API를 제공합니다.

둘 다 Google의 클라우드에 있습니다.

요약

모든 종류의 NLP 요구 사항에 대해 도움이 되는 도구와 라이브러리가 있습니다. 선택하는 항목은 개발 팀에 따라 크게 달라지므로 참여시키십시오. 내가 말한 세 가지 프로그래밍 언어뿐만 아니라 AI에 대한 친숙도를 알아야 합니다. 또한 기술 스택과 그것이 무엇을 지원할 수 있는지 이해해야 합니다.

개발 팀에 올바른 질문을 하고 조직의 요구 사항을 명확히 하세요. 그런 다음 회사 전체에 적합한 자연어 처리 도구와 라이브러리를 선택할 수 있습니다.