source

자연어 처리를 위한 Java 또는 Python

nicesource 2022. 10. 25. 17:41
반응형

자연어 처리를 위한 Java 또는 Python

자연어 처리에는 어떤 프로그래밍 언어가 더 좋은지 알고 싶습니다.Java 또는 Python?저는 그것에 대해 많은 질문과 답변을 찾았습니다.하지만 나는 어떤 것을 사용해야 할지 아직 고민하고 있다.

그리고 라이브러리(LingPipe, GATE, OpenNLP, StandfordNLP)가 많기 때문에 Java에 사용할 NLP 라이브러리를 알고 싶습니다.Python의 경우 대부분의 프로그래머가 NLTK를 권장합니다.

하지만 유용한 정보를 얻기 위해 구조화되지 않은 데이터에서 텍스트 처리 또는 정보 추출을 수행할 경우(자유 형식의 일반 영문 텍스트만) 가장 좋은 옵션은 무엇입니까?Java 또는 Python?적합한 라이브러리?

갱신필

구조화되지 않은 데이터로부터 유용한 제품 정보를 추출하는 것이 목적입니다(예를 들어, 사용자는 표준영어가 아닌 모바일이나 노트북에 대해 다양한 형태의 광고를 작성합니다).

Java vs Python for NLP는 매우 선호되거나 필요합니다.회사/프로젝트에 따라서는 둘 중 하나를 사용해야 합니다.프로젝트를 이끌지 않는 한 선택의 여지가 별로 없는 경우가 많습니다.

에는 (www.nltk.org) 이외의 텍스트 처리용 라이브러리가 실제로 있습니다.

(자세한 것에 대하여는, https://pypi.python.org/pypi?%3Aaction=search&term=natural+language+processing&submit=search) 를 참조해 주세요.

에는, 그 외의 많은 것이 있습니다만, 다음의 리스트가 있습니다.

  • 프리링 : http://nlp.lsi.upc.edu/freeling/
  • OpenNLP: http://opennlp.apache.org/
  • LingPipe : http://alias-i.com/lingpipe/
  • Stanford CoreNLP: http://stanfordnlp.github.io/CoreNLP/ (다른 언어용 포장지 포함, python 포함)
  • CogComp NLP: https://github.com/CogComp/cogcomp-nlp

이것은 기본적인 문자열 처리에 대한 적절한 비교입니다.http://nltk.googlecode.com/svn/trunk/doc/howto/nlp-python.html 를 참조해 주세요.

GATE 와 UIMA 와 Open NLP 의 비교에 대해서는, https://www.assembla.com/spaces/extraction-of-cost-data/wiki/Gate-vs-UIMA-vs-OpenNLP?version=4 를 참조해 주세요.

NLP를 사용하는 언어가 불분명한 경우, 저는 개인적으로 "원하는 분석/출력을 제공하는 언어"라고 말합니다.자연어 처리를 위해 배워야언어 또는 도구는 무엇입니까?

다음은 NLP 툴의 최신(2017년)입니다.https://github.com/alvations/awesome-community-curated-nlp

오래된 NLP 도구 목록(2013): http://web.archive.org/web/20130703190201/http


언어 처리 도구 외에 통합 도구도 매우 많이 필요합니다.NLP파이프라인.

에는 폭넓은 범위가 있다.Python ★★★★★★★★★★★★★★★★★」Java다시 한 번 말씀드리지만, 이 라이브러리가 충분히 사용하기 쉬운지 아닌지에 따라 달라집니다.

python의 머신 러닝 라이브러리:

  • Sklearn (Skikit-learn) : http://scikit-learn.org/stable/
  • 우유 : http://luispedro.org/software/milk
  • 스키피: http://www.scipy.org/
  • Theano : http://deeplearning.net/software/theano/
  • PyML: http://pyml.sourceforge.net/
  • pyBrain : http://pybrain.org/
  • Graphlab Create (상용 도구이지만 1년간 무료 학술 라이선스) : https://dato.com/products/create/

(자세한 것에 대하여는, https://pypi.python.org/pypi?%3Aaction=search&term=machine+learning&submit=search) 를 참조해 주세요.

  • Weka: http://www.cs.waikato.ac.nz/ml/weka/index.html
  • 망치: http://mallet.cs.umass.edu/
  • Mahout : https://mahout.apache.org/

최근 (2015년) NLP의 딥 러닝 쓰나미가 발생함에 따라 다음 사항을 고려할 수 있습니다. https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software

비호감/중립성 때문에 딥 러닝 툴은 표시하지 않습니다.


NLP/ML 툴에 대한 기타 Stackoverflow 질문:

그 질문은 매우 미해결이다.어느쪽인가를 선택하는 것이 아니라, 어느쪽인가를 사용하고 싶은 언어에 따라서 비교합니다(양쪽의 언어를 사용할 수 있는 좋은 라이브러리가 있기 때문입니다).

파이썬

Python의 관점에서 가장 먼저 살펴봐야 할 곳은 Python Natural Language Toolkit입니다.그들이 설명에서 언급했듯이, NLTK는 인간의 언어 데이터를 다루는 Python 프로그램을 구축하는 선도적인 플랫폼이다.분류, 토큰화, 추출, 태그 부착, 구문 분석 및 의미 추론을 위한 텍스트 처리 라이브러리 스위트와 함께 50개 이상의 코퍼레이트 및 WordNet과 같은 어휘 리소스에 사용하기 쉬운 인터페이스를 제공합니다.

구글의 Natural Language Toolkit 프로젝트(Python 기반의 Natural Language Toolkit 프로젝트)에서 유래한 훌륭한 코드도 있습니다.이 코드에 대한 링크는 여기 GitHub에서 찾을 수 있습니다.

자바

가장 먼저 볼 수 있는 곳은 스탠포드의 자연어 처리 그룹입니다.배포되는 모든 소프트웨어는 Java로 작성됩니다.최근의 모든 배포에는 Oracle Java 6+ 또는 OpenJDK 7+가 필요합니다.배포 패키지에는 명령줄 호출, jar 파일, Java API 및 소스 코드가 포함됩니다.

많은 머신러닝 환경(일반 옵션)에서 볼 수 있는 또 하나의 훌륭한 옵션은 Weka입니다.Weka는 데이터 마이닝 작업을 위한 기계 학습 알고리즘 모음입니다.알고리즘은 데이터 세트에 직접 적용하거나 사용자 고유의 Java 코드에서 호출할 수 있습니다.Weka에는 데이터 전처리, 분류, 회귀, 클러스터링, 연관 규칙 및 시각화를 위한 도구가 포함되어 있습니다.또한 새로운 기계 학습 체계를 개발하는 데도 적합합니다.

언급URL : https://stackoverflow.com/questions/22904025/java-or-python-for-natural-language-processing

반응형