
[rubyml | Rubydatience | Rubyinterop]
루비와 함께 멋진 NLP 
루비의 텍스트 처리에 유용한 리소스
이 선별 된 목록은 Ruby 프로그래밍 언어를 사용하여 인간 언어로 텍스트의 계산 처리에 관한 멋진 리소스, 라이브러리, 정보 소스로 구성됩니다. 이 분야는 종종 NLP, Computational Linguistics, HLT (Human Language Technology)라고하며 인공 지능, 기계 학습, 정보 검색, 텍스트 광업, 지식 추출 및 기타 관련 분야와 함께 제공 될 수 있습니다.
이 목록은 언어 모델 및 NLP 도구에 대한 일상적인 작업에서 비롯됩니다. 이 목록이 굉장한 이유를 읽으십시오. 우리의 FAQ는 중요한 결정과 당신이 관심을 가질 수있는 유용한 답변에 대해 설명합니다.
모든 기여는 환영합니다! 풀 요청을 통해 링크를 추가하거나 토론을 시작하기 위해 문제를 만듭니다.
트위터에서 우리를 팔로우하고 #RubyNLP 해시 태그를 사용하여 단어를 전파하십시오!
내용물
- 튜토리얼
- NLP 파이프 라인 하위 작업
- 파이프 라인 생성
- 다목적 엔진
- 언어 식별
- 분할
- 어휘 처리
- 스템 밍
- lemmatization
- 어휘 통계 : 카운팅 유형 및 토큰
- 필터링 중지 단어
- 구절 수준 처리
- 구문 처리
- 시맨틱 분석
- 실용적인 분석
- 높은 수준의 작업
- 철자 및 오류 수정
- 텍스트 정렬
- 기계 번역
- 감정 분석
- 숫자, 날짜 및 시간 구문 분석
- 지명 된 엔티티 인식
- 텍스트-음성 연설-텍스트
- 대화 에이전트, 조수 및 챗봇
- 언어 자원
- 기계 학습 라이브러리
- 데이터 시각화
- 광학 문자 인식
- 텍스트 추출
- 전체 텍스트 검색, 정보 검색, 인덱싱
- 언어 인식 문자열 조작
- 기사, 게시물, 대화 및 프레젠테이션
- 프로젝트 및 코드 예제
- 서적
- 지역 사회
- 도움이 필요합니다!
- 관련 리소스
- 특허
튜토리얼
이 섹션을 작성하도록 도와주세요! ?
NLP 파이프 라인 하위 작업
NLP 파이프 라인은 일반 텍스트로 시작합니다.
파이프 라인 생성
- composable_operations- 작동 파이프 라인을위한 정의 프레임 워크.
- Ruby -Spark- 이해하기 쉬운 DSL로 스파크 바인딩.
- Phobos- Apache Kafka의 단순화 된 Ruby Client.
- 병렬 - 다중 CPU 또는 많은 스레드에서 병렬 실행을위한 감독자.
- PWRAKE- 로컬 및 원격 작업을 병렬로 실행하기위한 확장을 갈퀴.
다목적 엔진
- Open -NLP- OpenNLP 툴킷의 루비 바인딩.
- Stanford-Core-NLP- Stanford Corenlp 도구를위한 루비 바인딩.
- 치료 - 루비의 자연어 처리 프레임 워크 (Python의 NLTK와 같은).
- NLP_TOOLZ- 일부 OpenNLP 클래스와 오리지널 버클리 파서의 래퍼.
- Open_NLP- OpenNLP 툴킷에 대한 JRUBY 바인딩.
- Ruby-Spacy-Pycall을 통한 Spacy NLP 라이브러리 용 래퍼 모듈.
온라인 API
- Alchemyapi_Ruby- Alchemyapi/Bluemix를위한 레거시 루비 SDK.
- Wit -Ruby- Wit.ai 언어 이해 플랫폼을위한 Ruby Client Library.
- WLAPI -Wortschatz Leipzig Web Services 용 Ruby Client Library.
- MONKEYLEARN -RUBY- 감정 분석, 주제 모델링, 언어 탐지, Ruby 기반 웹 API 클라이언트를 통한 엔티티 인식 명명.
- Google-Cloud-Language-Ruby 용 Google의 자연어 서비스 API.
언어 식별
언어 식별은 모든 NLP 파이프 라인에서 첫 번째 중요한 단계 중 하나입니다.
분할
토큰 화, 단어 및 문장 경계 탐지 및 명확성을위한 도구.
- Tokenizer- 간단한 다국어 토큰 화기. [지도 시간]
- pragmatic_tokenizer- 문자열을 토큰으로 분할하는 다국어 토큰 화기.
- NLP -PURE- 최소한 의존성을 가진 순수한 루비에서 구현 된 자연어 처리 알고리즘.
- TEXTOKNE- 간단하고 사용자 정의 가능한 텍스트 토큰 화 라이브러리.
- pragmatic_segmenter- 많은 쿠키와의 단어 경계 명확성.
- Punkt -segmenter- 펑크 세그먼터의 순수한 루비 구현.
- Tactful_tokenizer- 다른 언어에 대한 regexp 기반 토큰 화기.
- SCAPEL- 문장 경계 분해 도구.
어휘 처리
스템 밍
Stemming은 WordForms를 일부 기본 표현으로 줄이는 프로세스를 설명하기 위해 정보 검색에 사용되는 용어입니다. stems 반드시 언어 적 동기를 가지고 있지 않기 때문에 스템은 렘 매팅과 구별되어야합니다.
- Ruby-Stemmer-Ruby-Stemmer는 Snowball API를 Ruby에 노출시킵니다.
- UEA -Stemmer- 검색 및 인덱싱을위한 보수적 인 스템머.
lemmatization
레마 화는 단어의 기본 형태를 찾는 과정으로 간주됩니다. 레마는 종종 사전에서 수집됩니다.
- Lemmatizer- 영어 텍스트 용 WordNet 기반 Lemmatizer.
어휘 통계 : 카운팅 유형 및 토큰
- WC- 텍스트에서 단어 발생을 계산하는 시설.
- Word_count-
String 및 Hash 객체에 대한 Word 카운터. - Words_counted- 다양한 사용자 정의 옵션을 갖춘 Word Statistics를 계산하는 순수한 루비 라이브러리.
필터링 중지 단어
- Stopwords -Filter- 눈덩이 lemmatizer를 기반으로 한 단어 어휘를 필터 및 중지.
구절 수준 처리
- n_gram -n -gram 생성기.
- Ruby -Ngram- 단어와 문구를 ngrams로 나눕니다.
- Raingrams- 순수한 루비로 쓰여진 유연하고 일반적인 Ngrams 도서관.
구문 처리
선거구 파싱
- Stanfordparser- 스탠포드 파서를위한 루비 기반 래퍼.
- Rley- 컨텍스트가없는 선거구 문법을위한 Earley Parsing 알고리즘의 순수한 루비 구현.
- Rsyntaxtree- Rmagick을 기반으로 Ruby의 구문 트리에 대한 시각화. [DEP : Imagemagick]
시맨틱 분석
- AMATCH- 줄 사이의 5 가지 거리 유형 세트 (Levenshtein, 판매자, Jaro -Winkler, 'Pair Disting').
- Damerau-Levenshtein- Damerau-Levenshtein 알고리즘을 사용하여 편집 거리를 계산합니다.
- HOTWATER- 빠른 Ruby FFI 문자열 편집 거리 알고리즘.
- LEVENSHTEIN-FFI- Damerau-Levenshtein 알고리즘을 사용하여 빠른 문자열 편집 거리 계산.
- TF_IDF- 순수한 루비의 용어 주파수 / 역 문서 주파수.
- TF-IDF- 유사성-TF/IDF를 사용하여 텍스트 간의 유사성을 계산합니다.
실용적인 분석
- Sentimentlib- 간단한 확장 가능한 감정 분석 보석.
높은 수준의 작업
철자 및 오류 수정
- 생강 - 생강 API를 통한 철자 및 문법 교정.
- Hunspell -I18N- 표준 Hunspell Spell 체커에 대한 루비 바인딩.
- FFI -HUNSPELL -HUNSPELL에 대한 FFI 기반 루비 바인딩.
- HUNSPELL -Ruby C API를 통해 Hunspell에 루비 바인딩.
텍스트 정렬
- 정렬 - 이중 언어 텍스트의 정렬 루틴 (게일 교회 구현).
기계 번역
- Google-Api-Client-Google API Ruby 클라이언트.
- Microsoft_translator- Microsoft Translator API의 Ruby 클라이언트.
- TEMIT -Google은 터미널의 음성 합성으로 번역합니다.
- ZIPF- BLEU 및 기타 기본 알고리즘 구현.
감정 분석
- Stimmung- Sentiws Lexicon을 기반으로 한 의미 론적 극성.
숫자, 날짜 및 시간 구문 분석
- 만성 - 순수한 루비 자연 언어 날짜 구문서.
- Chronic_between- 날짜와 시간 범위를위한 간단한 루비 자연어 파서.
- Chronic_duration- 경과 시간을위한 순수한 루비 파서.
- Kronic- 인간 읽기 가능한 날짜를 구문 분석하고 서식하는 방법.
- 니켈 - 자연스럽게 단어 텍스트에서 날짜, 시간 및 메시지 정보를 추출합니다.
- 간질 - 반복 및 반복적 인 이벤트를위한 파서.
- Numerizer- 영어 번호 표현을위한 Ruby Parser.
지명 된 엔티티 인식
- Ruby -Ner- Stanford Ner 및 Ruby와 함께 Entity Recognition.
- Ruby-NLP- Stanford Pos-Tagger 및 Name Entity Celobizer의 Ruby Binding.
텍스트-음성 연설-텍스트
- Espeak-Ruby- 'Espeak'및 'Lame'을 사용하여 텍스트 음성 MP3 파일을 생성하는 작은 Ruby API.
- TTS- Google Translate Service를 사용한 텍스트 음성 변환.
- ATT_SPEECH -AT & T SPEENT API를 통해 Ruby Wrapper를 텍스트 할 수 있습니다.
- Pocketsphinx -Ruby -Pocketsphinx 바인딩.
대화 에이전트, 조수 및 챗봇
- ChatterBot- OAUTH를 사용하여 인증하기 위해 간단한 Ruby 기반 Twitter Bot Framework.
- LITA- redis에 지속적인 스토리지로 작성된 매우 확장 가능한 채팅 운영 봇 프레임 워크.
언어 자원
- RWORDNET- Princeton WordNet®을위한 Pure Ruby Self가 포함 된 API 라이브러리.
- WordNet- Princeton WordNet®의 성능 조정 바인딩.
기계 학습 라이브러리
순수한 루비의 머신 러닝 알고리즘 또는 루비에 적절한 바인딩을 가진 다른 프로그래밍 언어로 작성되었습니다.
더 최신 목록을 보려면 Ruby 목록이있는 멋진 ML을 참조하십시오.
- RB -LIBSVM- 루비를 사용하여 벡터 머신을 지원합니다.
- Weka -Jruby 바인딩 Weka, Weka를 통해 구현 된 다양한 ML 알고리즘.
- DecisionTree- 순수한 루비의 의사 결정 트리 ID3 알고리즘 [게시물] .
- RTIMBL- TIMBL 프레임 워크의 메모리 기반 학습자.
- Classifier -Reborn- 베이지안 및 기타 유형의 분류를 허용하는 일반 분류기 모듈.
- LDA -Ruby- 자동 주제 모델링 및 문서 클러스터링을위한 LDA (잠재 Dirichlet 할당)의 루비 구현.
- liblinear-ruby-swig-liblinear에 대한 Ruby 인터페이스 (텍스트 분류의 경우 libsvm보다 훨씬 효율적).
- LINNAEUS- 레 디스 지원 베이지안 분류기.
- maxent_string_classifier- OpenNLP Maxent 프레임 워크를 기반으로 문자열 데이터에 대한 Jruby 최대 엔트로피 분류기.
- NAIVE_BAYES- 간단한 순진한 베이 스 분류기.
- NBAYES- 순진한 베이에 대한 완전한 고유 루비 구현.
- OMNICAT- 텍스트 분류를위한 일반화 된 랙 프레임 워크.
- OMNICAT -BAYES- 순진한 Bayes 텍스트 분류 구현 OMNICAT 분류기 전략.
- Ruby -Fann- 빠른 인공 신경망 라이브러리 (FANN)에 루비 바인딩.
- RBLEARN- 기능 추출 및 크로스 파괴 라이브러리.
데이터 시각화
Ruby 목록이있는 데이터 과학의 데이터 시각화 섹션을 참조하십시오.
광학 문자 인식
- Tesseract -Acr- Tesseract OCR 엔진을 통한 FFI 기반 래퍼.
텍스트 추출
- YOMU- Apache Tika Content Analysis Toolkit을 사용하여 파일 및 문서에서 텍스트 및 메타 데이터를 추출하기위한 라이브러리.
전체 텍스트 검색, 정보 검색, 인덱싱
- RSOLR- Apache Solr 용 Ruby and Rails 클라이언트 라이브러리.
- Sunspot- Apache Solr의 Rails Centric Client.
- Thinking -Sphinx- 스핑크스를 사용하기위한 활성 레코드 플러그인 (스핑크스뿐만 아니라 레일 기반 프로젝트).
- Elasticsearch -Ruby Client 및 Elasticsearch의 API.
- Elasticsearch -Rails -Elasticsearch를위한 Ruby and Rails 통합.
- Google-Api-Client- Google 서비스를위한 Ruby API 라이브러리.
언어 인식 문자열 조작
언어 인식 문자열 조작, 즉 검색, 패턴 매칭, 케이스 변환, 트랜스 코딩, 기본 언어에 대한 정보가 필요한 정규식.
- fuzzy_match- 퍼지 문자열 비교 거리 측정 및 정규 표현식.
- 퍼지 스트링 매치-루비를위한 퍼지 문자열 매칭 라이브러리.
- active_support -ror
ActiveSupport gem에는 케이스를 처리 할 수있는 다양한 문자열 확장 기능이 있습니다. - fuzzy_tools- 루비에서 퍼지 검색을위한 도구 세트는 정확도를 조정했습니다.
- U -u는 Ruby의 유니 코드 지원을 확장합니다.
- 유니 코드 - 유니 코드 정규화 라이브러리.
- CommonRegexRuby- 문자열에서 많은 종류의 공통 정보를 찾으십시오.
- regexp -examples- 주어진 정규 표현식과 일치하는 문자열을 생성합니다.
- verbal_expressions- 어려운 정규 표현식을 쉽게 만듭니다.
- Translit_kit- 히브리어 및 이디시어 텍스트를 라틴 문자로 번역하십시오.
- RE2- 텍스트 마이닝 및 텍스트 추출을위한 Hight -Speed 정규식 라이브러리.
- Regex_Sample- 주어진 정규 표현식에서 샘플 문자열 생성.
- IULIIA - 다양한 방법으로 (참조 구현에 의해 정의 됨), 라틴어에 대한 음역 키릴.
기사, 게시물, 대화 및 프레젠테이션
- 2019
- Aonemd의 Ruby를 사용하여 이미지에서 텍스트 추출 [post | 암호]
- 2018
- Cassandra Corrales의 자연 언어 처리 및 트윗 감정 분석 [Post]
- 2017
- Google NLP API는 Aja Hammerly의 Ruby를 만난다 [Post]
- 구문은 전부가 아닙니다 : Aja Hammerly의 Rubyists를위한 NLP [슬라이드]
- Prasun Anand의 Jruby에 대한 과학 컴퓨팅 [슬라이드 | 비디오 | 슬라이드 | 슬라이드]
- Starr Horne에 의한 루비의 유니 코드 정규화 [Post]
- 2016
- Ardian Haxha의 Ruby에서 Telegram Bot을 신속하게 만듭니다 [튜토리얼]
- 딥 러닝 : Geoffrey Litt의 루비 개발자를위한 소개 [슬라이드]
- Kei Sawada에 의해 3 배 이상 더 빠른 순수한 Ruby Word2Vec 프로그램을 만든 방법 [슬라이드]
- Dōmo Arigatō, Mr. Roboto : Eric Weinstein의 Ruby와의 기계 학습 [슬라이드 | 동영상]
- 2015
- 예수 Castello의 재미와 이익에 대한 n 그램 분석 [튜토리얼]
- Lorenzo Masini의 Ruby와 함께 단순한 기계 학습 [튜토리얼]
- Rick Carlino의 Paris Hilton 인용문을 찾기 위해 Ruby Machine Learning 사용 [튜토리얼]
- Kevin Dias의 Ruby에서 자연어 처리 탐색 [슬라이드]
- Lorenzo Masini의 Ruby로 단순하게 만든 머신 러닝 [Post]
- Bobby Grayson의 Ruby의 실용 데이터 과학 [슬라이드]
- 2014
- Glauco Custódio의 Ruby와 함께 자연어 구문 분석 [튜토리얼]
- Demystifiing Data Science : Todd Schneider의 Rails 및 Ngrams와의 회의 분석 [비디오 | 암호]
- Konstantin Tennhard의 Ruby와의 자연 언어 처리 [비디오 | 비디오 | 비디오 | 슬라이드]
- 2013
- 'Go'를 구문 분석하는 방법 - Tom Cartwright의 Ruby에서 자연어 처리 [슬라이드 | 동영상]
- Brandon Black의 Ruby의 자연 언어 처리 [슬라이드 | 동영상]
- Ruby를 사용한 자연 언어 처리 : Nathan Kleyn의 N-Grams [튜토리얼 | 암호]
- Lovecraft 찾기, 1 부 : Robert Qualls의 NLP와 The Treat Gem에 대한 소개 [튜토리얼]
- 2012
- Ruby와의 기계 학습, Vasily Vasinov의 1 부 [튜토리얼]
- 2011
- Benoit Hamelin의 Ruby One-Liners [Post]
- Colin Drake의 루비 클러스터링 [Post/)]
- 2010 년
- Bayes_motel - Mike Perham의 Ruby에 대한 베이지안 분류 [post]
- 2009 년
- Jason Adams의 UEA-Lite Stemmer를 Ruby에게 포팅 [Post]
- Jason Adams의 Ruby를위한 NLP 리소스 [Post]
- 2008
- Ilya Grigorik의 Ruby의 지원 벡터 머신 (SVM) [Post]
- Gleicon Moraes의 Ruby와 실용적인 텍스트 분류 [Post | 암호]
- 2007
- Ilya Grigorik의 Ruby의 의사 결정 트리 학습 [Post]
- 2006
- 내 언어를 말하십시오 : Michael Granger의 Ruby와 함께 자연 언어 처리 [슬라이드 | 쓰기 | 쓰기]
프로젝트 및 코드 예제
- 거리 진행 - 예제 계산과 함께 다양한 거리 알고리즘의 구현.
- Ruby와 Java의 Stanford Ner 및 Ruby -Ner 사례와 함께 Entity Recodition으로 명명되었습니다.
- 단어 계산 - words_counted로 구동되는 사용자 정의 가능한 단어 통계의 예.
- Rsyntaxtree- 구문 트리 시각화의 웹 기반 데모.
서적
- 밀러, 롭. 루비를 사용한 텍스트 처리 : 주변 데이터에서 값을 추출합니다. 실용 프로그래머, 2015. [링크]
- 왓슨, 마크. 스크립팅 인텔리전스 : 웹 3.0 정보 수집 및 처리. Apres, 2010. [Link]
- 왓슨, 마크. 실용적인 시맨틱 웹 및 연결된 데이터 응용 프로그램. Lulu, 2010. [링크]
지역 사회
도움이 필요합니다!
이 섹션의 모든 프로젝트는 커뮤니티에 정말 중요하지만 더 많은 관심이 필요합니다. 여가 시간과 헌신이 있으면 여기 코드에서 몇 시간을 보내십시오.
- FERRET- C 및 Ruby의 정보 검색.
- 요약 - 오픈 텍스트 요약자 용 루비 네이티 래퍼.
관련 리소스
- 신경 기계 번역 구현
- 멋진 루비 - 다른 멋진 아이템 중 NLP 관련 프로젝트의 짧은 목록.
- Ruby NLP- NLP 용 루비 도서관의 최첨단 컬렉션.
- 언어 및 자연어 처리 - 일반적인 NLP 관련 리소스의 일반 목록 (대부분 루비 프로그래머가 아님).
- 과학 루비 - 선형 대수, 루비의 시각화 및 과학 컴퓨팅.
- Iruby- Jupyter (Formelly Ipython)의 Iruby 커널.
- 멋진 OCR- 다양한 OCR (광학 문자 인식) 리소스.
- 멋진 Tensorflow -Tensorflow 라이브러리가있는 기계 학습.
- imagemagick
특허
Andrei Beliankou와 기고자의 Awesome NLP with Ruby .
법률에 따라 가능한 한, CC0을 Awesome NLP with Ruby 와 연관시킨 사람은 Awesome NLP with Ruby 에 대한 모든 저작권 및 관련 또는 인접 권리를 포기했습니다.
이 작업과 함께 CC0 LegalCode의 사본을 받았어야합니다. 그렇지 않은 경우 https://creativecommons.org/publicdomain/zero/1.0/를 참조하십시오.