OpenNLP 퀵 가이드

2017.05.30 22:33

졸리운_곰 조회 수:1083

 

OpenNLP 퀵 가이드

 

 


OpenNLP - 개요

NLP는 웹 페이지 및 텍스트 문서와 같은 자연 언어 소스에서 의미 있고 유용한 정보를 도출하는 데 사용되는 도구의 집합입니다.


열기 NLP는 무엇인가?

아파치 OpenNLP 자연 언어 텍스트를 처리하는 데 사용되는 오픈 소스 자바 라이브러리입니다. 이 라이브러리를 사용하여 효율적인 텍스트 처리 서비스를 구축 할 수 있습니다.

OpenNLP 등은 토큰, 문장 분할, 품사 태깅, 개체 명 추출, 청크, 파싱, 및 공동 기준 해상도와 같은 서비스를 제공한다


OpenNLP의 특징

OpenNLP의 주목할만한 특징은 다음과 -

  • Named Entity Recognition (NER) - 오픈 NLP는 NER은 당신도 처리 쿼리 동안 위치, 사람과 사물의 이름을 추출 할 수있는 사용을 지원합니다.

  • Summarize -은 Using summarize 기능을 사용하면 단락, 기사, 문서 또는 NLP의 자신의 수집을 요약 할 수 있습니다.

  • Searching - OpenNLP에서, 지정된 검색 문자열 또는 동의어는 주어진 단어가 변경되거나 맞춤법이 틀린 경우에도, 주어진 텍스트에서 확인 할 수있다.

  • Tagging (POS) - 태깅 NLP에서 추가 분석을위한 다양한 문법적 요소에 텍스트를 분할하는데 사용된다.

  • Translation - NLP에서, 번역은 하나의 언어를 다른 언어로 번역하는 데 도움이됩니다.

  • Information grouping - NLP 그룹이 옵션은 단지 언론의 부품과 같은 문서의 내용의 텍스트 정보.

  • Natural Language Generation - 그것은 데이터베이스에서 정보를 생성 및 기상 분석 또는 의료 보고서와 같은 정보 보고서를 자동화하는 데 사용됩니다.

  • Feedback Analysis - 이름에서 알 수 있듯이, 사람들로부터 피드백의 여러 유형의 제품이 그들의 마음을 승리에 성공 얼마나 잘 분석하는 NLP에 의해, 제품에 대한 수집하고 있습니다.

  • Speech recognition - 그것은 인간의 연설을 분석하기 어렵지만, NLP는이 요구 사항에 대한 몇 가지 내장 기능을 가지고 있습니다.

열기 NLP의 API

아파치 OpenNLP 라이브러리는 클래스와 인터페이스는 문장 감지, 토큰 화, 이름을 찾는 품사 태깅, 문장을 청크, 구문 분석, 공동 참조 해상도, 문서 분류 등의 자연 언어 처리의 다양한 작업을 수행 할 수 있습니다.

이러한 작업뿐만 아니라, 우리는 또한 훈련 할 수 있으며 이러한 작업을 위해 우리 자신의 모델을 평가합니다.

OpenNLP CLI

라이브러리에 추가하여, OpenNLP 또한 명령 줄 인터페이스 제공 (CLI) 우리가 훈련 모델을 평가할 수 있습니다. 우리는이 튜토리얼의 마지막 장에서 상세하게이 주제를 논의 할 것이다.

OpenNLP CLI


열기 NLP 모델

다양한 NLP의 작업을 수행하려면 OpenNLP는 미리 정의 된 모델 세트를 제공합니다. 이 세트는 다른 언어에 대한 모델이 포함되어 있습니다.

모델 다운로드

당신은 OpenNLP에서 제공하는 미리 정의 된 모델을 다운로드하려면 아래의 단계를 수행 할 수 있습니다.

Step 1 - 다음 링크를 클릭하여 OpenNLP 모델의 인덱스 페이지를 엽니 다.

OpenNLP 모델

Step 2 - 지정된 링크를 방문에서 다양한 언어로 다운로드 할 수있는 링크의 구성 요소 목록을 볼 수 있습니다. 여기에서, 당신은 OpenNLP에서 제공하는 모든 미리 정의 된 모델의 목록을 얻을 수 있습니다.

미리 정의 된 모델

폴더에 모든 모델을 다운로드 C:/OpenNLP_models/> , 각각의 링크를 클릭하여. 이러한 모든 모델은 언어 의존하고 이것들을 사용하는 동안, 당신은 모델 언어가 입력 텍스트의 언어와 일치하는지 확인해야합니다.


OpenNLP의 역사

  • 2010 년 OpenNLP 아파치 배양에 들어갔다.

  • 2011 년 아파치 OpenNLP 1.5.2 인큐베이팅이 출시되었고, 같은 해에, 그것은 최고 수준 아파치 프로젝트로 졸업했다.

  • 2015 년, OpenNLP는 1.6.0 출시되었습니다.


OpenNLP - 환경

이 장에서는 시스템에 어떻게 당신이 할 수있는 설정 OpenNLP 환경을 설명합니다. 의 설치 과정을 시작하자.


OpenNLP 설치

다음은 다운로드하는 단계입니다 Apache OpenNLP library 시스템에이.

Step 1 - 홈페이지 열고 Apache OpenNLP - 다음 링크를 클릭하여 https://opennlp.apache.org/을 .

아파치 OpenNLP

Step 2 - 이제, 클릭 Downloads 링크. 클릭에, 당신은 당신이 아파치 소프트웨어 재단의 배포 디렉토리로 리디렉션됩니다 다양한 거울을 찾을 수있는 페이지로 이동합니다.

Step 3 -이 페이지에서 다양한 아파치 배포판을 다운로드 할 수있는 링크를 찾을 수 있습니다. 그들을 통해 검색하고 OpenNLP 분포를 찾아서 클릭합니다.

분포

Step 4 - 아래 그림과 같이 클릭에는, 당신은, 당신은 OpenNLP 분포의 인덱스를 볼 수있는 디렉토리로 리디렉션됩니다.

Opennlp의 색인

가능한 배포판의 최신 버전을 클릭합니다.

Step 5 - 각각의 분포는 소스 및 다양한 형식의 OpenNLP 라이브러리의 바이너리 파일을 제공합니다. 소스 및 바이너리 파일, 다운로드 apache-opennlp-1.6.0-bin.zip 및 apache-opennlp1.6.0-src.zip (for Windows) .

OpenNLP의 소스 및 바이너리 파일


클래스 경로 설정

OpenNLP 라이브러리를 다운로드 한 후, 당신은 그것의 경로를 설정해야합니다 bin 디렉토리. 당신이 당신의 시스템의 E 드라이브에 OpenNLP 라이브러리를 다운로드 한 것으로 가정합니다.

이제 아래에 주어진 단계를 수행 -

Step 1 - '내 컴퓨터'를 마우스 오른쪽 단추로 클릭하고 '속성'을 선택합니다.

Step 2 - '고급'탭에서 '환경 변수'버튼을 클릭합니다.

Step 3 - 선택 path 변수를하고 클릭 Edit 아래의 스크린 샷과 같이 버튼을 클릭합니다.

시스템 변수 경로

Step 4 - 편집 환경 변수 창에서 클릭 New 버튼을하고 OpenNLP 디렉토리에 대한 경로 추가 E:\apache-opennlp-1.6.0\bin 하고 클릭 OK 아래의 스크린 샷과 같이 버튼을 클릭합니다.

편집 환경 변수 창


이클립스 설치

당신은 OpenNLP 라이브러리, 중 하나를 설정하여 Eclipse 환경을 설정할 수 있습니다 Build path JAR 파일에 또는 사용하여 pom.xml .

에 JAR 파일로 빌드 경로 설정을

- 이클립스에 OpenNLP를 설치하려면 아래의 단계를 따르십시오

Step 1 - 이클립스 환경이 시스템에 설치되어 있는지 확인합니다.

Step 2 - 오픈 이클립스. 아래 그림과 같이, 새로운 → 열기 새 프로젝트 → 파일을 클릭합니다.

새 프로젝트

Step 3 - 당신은 얻을 것이다 New Project 마법사를. 이 마법사에서 자바 프로젝트를 선택하고 클릭하여 계속 Next 버튼을 클릭합니다.

자바 프로젝트

Step 4 - 다음, 당신은 얻을 것이다 New Java Project wizard . 여기에서, 당신은 새 프로젝트를 생성하고 클릭해야 Next 다음과 같이 버튼을 클릭합니다.

내 프로젝트

Step 5 - 새 프로젝트를 생성 한 후, 그 위에, 선택하고 마우스 오른쪽 버튼을 클릭 한 Build Path 클릭 Configure Build Path .

빌드 경로를 구성

Step 6 - 다음, 당신은 얻을 것이다 Java Build Path 마법사를. 여기에서 클릭 Add External JARs 다음과 같이 버튼을 클릭합니다.

경로를 구축 자바

Step 7 - jar 파일을 선택 opennlp-tools-1.6.0.jar 와 opennlp-uima-1.6.0.jar 에있는 lib 의 폴더 apache-opennlp-1.6.0 folder .

Opennlp 도구

딸깍에 Open 위의 화면에서 버튼을, 선택한 파일을 라이브러리에 추가됩니다.

외부 JAR 파일 추가

클릭에 OK 성공적 현재 프로젝트에 필요한 JAR 파일을 추가하고 다음과 같이 당신은, 참조 된 라이브러리를 확장하여 이러한 추가 라이브러리를 확인할 수 있습니다.

샘플 작업 공간

pom.xml 파일을 사용하여

메이븐 프로젝트로 프로젝트를 변환하고 다음 코드를 추가 pom.xml .

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
   <modelVersion>4.0.0</modelVersion> 
   <groupId>myproject</groupId> 
   <artifactId>myproject</artifactId> 
   <version>0.0.1-SNAPSHOT</version> 
   <build> 
      <sourceDirectory>src</sourceDirectory> 
      <plugins> 
         <plugin> 
            <artifactId>maven-compiler-plugin</artifactId> 
            <version>3.5.1</version> 
            <configuration> 
               <source>1.8</source> 
               <target>1.8</target> 
            </configuration> 
         </plugin> 
      </plugins> 
   </build> 
   <dependencies>  
      <dependency> 
         <groupId>org.apache.opennlp</groupId> 
         <artifactId>opennlp-tools</artifactId> 
         <version>1.6.0</version> 
     </dependency> 
     <dependency> 
         <groupId>org.apache.opennlp</groupId> 
         <artifactId>opennlp-uima</artifactId> 
         <version>1.6.0</version> 
      </dependency>      
  </dependencies>  
</project> 

OpenNLP - 참조 된 API

이 장에서 우리는이 튜토리얼의 다음 장에서 사용하게 될 클래스와 메소드에 대해 논의 할 것이다.


문장 감지

SentenceModel 클래스

이 클래스는 주어진 원시 텍스트의 문장을 감지하는 데 사용되는 미리 정의 된 모델을 나타냅니다. 이 클래스는 패키지에 속하는 opennlp.tools.sentdetect .

이 클래스의 생성자는 수용 InputStream 문장 검출기 모델 파일의 객체 (en-sent.bin) .

SentenceDetectorME 클래스

이 클래스는 패키지에 속하는 opennlp.tools.sentdetect 과 문장에 원시 텍스트를 분할하는 방법이 포함되어 있습니다. 이 클래스는 문장의 끝을 의미하는지 확인하기 위해 문자열의 최종 ofsentence 문자를 평가하기 위해 최대 엔트로피 모델을 사용합니다.

다음은이 클래스의 중요한 방법이다.

S.No 방법 및 설명
1

sentDetect()

이 방법은 전달 된 원시 텍스트에서 문장을 검색하는 데 사용됩니다. 이 매개 변수로 String 변수를 받아 주어진 원시 텍스트에서 문장을 유지하는 문자열 배열을 반환합니다.

sentPosDetect()

이 방법은 주어진 텍스트에서 문장의 위치를 ​​감지하는 데 사용됩니다. 이 방법은 문장을 나타내는 문자열 변수를 받아 유형의 객체의 배열 반환 Span .

라는 이름의 클래스 Span 의 opennlp.tools.util 패키지 세트의 시작과 끝 정수를 저장하는 데 사용됩니다.

getSentenceProbabilities()

이 방법은 가장 최근 통화와 관련된 확률 반환 sentDetect() 메소드를.


토큰 화

TokenizerModel 클래스

이 클래스는 주어진 문장을 토큰 화하는 데 사용되는 미리 정의 된 모델을 나타냅니다. 이 클래스는 패키지에 속하는 opennlp.tools.tokenizer .

이 클래스의 생성자는 수용 InputStream 토크 나이 모델 파일의 객체 (entoken.bin) .

클래스

토큰 화를 수행하려면 OpenNLP 라이브러리는 세 가지 주요 클래스를 제공합니다. 모든 세 가지 클래스라는 인터페이스 구현 Tokenizer .

S.No 클래스 및 설명
1

SimpleTokenizer

이 클래스는 문자 클래스를 사용해, 지정된 원시 텍스트를 토큰 화합니다.

WhitespaceTokenizer

이 클래스는 주어진 텍스트를 토큰 화하기 위해 공백을 사용합니다.

TokenizerME

이 클래스는 별도의 토큰 원시 텍스트를 변환합니다. 그것은 그것의 결정을 내릴 최대 엔트로피를 사용합니다.

이러한 클래스는 다음과 같은 방법을 포함한다.

S.No 방법 및 설명
1

tokenize()

이 방법은 원시 텍스트를 토큰 화하는 데 사용됩니다. 이 방법은 파라미터로서 문자열 변수를 수용하고, 문자열 배열 반환 (tokens) .

sentPosDetect()

이 방법은 토큰의 위치 또는 스팬을 가져 오는 데 사용됩니다. 이 문장 허용 (or) 문자열의 형태로 원시 텍스트 및 유형의 객체의 배열 반환 Span .

상기 두 가지 방법에 더하여, TokenizerME 클래스가 가지고 getTokenProbabilities() 방법.

S.No 방법 및 설명
1

getTokenProbabilities()

이 방법은 가장 최근 통화와 관련된 확률 가져 오는 데 사용됩니다 tokenizePos() 메소드를.


NameEntityRecognition

TokenNameFinderModel 클래스

이 클래스는 주어진 문장에서 명명 된 개체를 찾기 위해 사용되는 미리 정의 된 모델을 나타냅니다. 이 클래스는 패키지에 속하는 opennlp.tools.namefind .

이 클래스의 생성자는 수용 InputStream 이름 파인더 모델 파일의 객체 (enner-person.bin) .

NameFinderME 클래스

클래스는 패키지에 속하는 opennlp.tools.namefind 과는 NER 작업을 수행하는 방법이 포함되어 있습니다. 이 클래스는 주어진 원시 텍스트로 명명 된 개체를 찾을 최대 엔트로피 모델을 사용합니다.

S.No 방법 및 설명
1

find()

이 방법은 원시 텍스트로 이름을 검색하는 데 사용됩니다. 이 매개 변수로 원시 텍스트를 나타내는 String 변수를 허용하고, 유형 스팬의 객체의 배열을 반환합니다.

probs()

이 방법은 마지막 디코딩 시퀀스의 확률을 가져 오는 데 사용됩니다.


음성의 부품을 찾기

POSModel 클래스

이 클래스는 주어진 문장의 품사를 태그하는 데 사용되는 미리 정의 된 모델을 나타냅니다. 이 클래스는 패키지에 속하는 opennlp.tools.postag .

이 클래스의 생성자는 수용 InputStream 는 POS-술래 모델 파일의 객체 (enpos-maxent.bin) .

POSTaggerME 클래스

이 클래스는 패키지에 속하는 opennlp.tools.postag 주어진 원시 텍스트의 연설의 일부를 예측하는 데 사용됩니다. 그것은 그것의 결정을 내릴 최대 엔트로피를 사용합니다.

S.No 방법 및 설명
1

tag()

이 방법은 토큰 POS 태그의 문장을 할당하는 데 사용됩니다. 이 방법은 토큰의 배열을 받아들 (String) 매개 변수로 사용을하고, 태그를 반환 (array) .

getSentenceProbabilities()

이 방법은 최근에 태그 문장의 각 태그의 확률을 가져 오는 데 사용됩니다.


문장을 구문 분석

ParserModel 클래스

이 클래스는 주어진 문장을 분석하는 데 사용되는 미리 정의 된 모델을 나타냅니다. 이 클래스는 패키지에 속하는 opennlp.tools.parser .

이 클래스의 생성자는 수용 InputStream 파서 모델 파일의 객체 (en-parserchunking.bin) .

파서 팩토리 클래스

이 클래스는 패키지에 속하는 opennlp.tools.parser 파서를 만드는 데 사용됩니다.

S.No 방법 및 설명
1

create()

이 고정 방법이며 이는 파서 객체를 생성하는 데 사용된다. 이 방법은 파서 모델 파일의 FileStream 객체를 사용할 수 있습니다.

ParserTool 클래스

이 클래스는에 속하는 opennlp.tools.cmdline.parser 내용을 구문 분석하는 데 사용되는 패키지.

S.No 방법 및 설명
1

parseLine()

의이 방법 ParserTool 클래스는 OpenNLP에서 원시 텍스트를 구문 분석하는 데 사용됩니다. 이 방법은 받아 -

  • 텍스트를 나타내는 String 변수 구문 분석.
  • 파서 객체입니다.
  • 헤아 렸어요을 나타내는 정수를 실시하여야 구문 분석합니다.

청크

ChunkerModel 클래스

이 클래스는 작은 덩어리로 문장을 분할하는 데 사용되는 미리 정의 된 모델을 나타냅니다. 이 클래스는 패키지에 속하는 opennlp.tools.chunker .

이 클래스의 생성자는 수용 InputStream 의 객체 chunker 모델 파일 (enchunker.bin) .

ChunkerME 클래스

이 클래스는 패키지 이름에 속하는 opennlp.tools.chunker 작은 조각에 주어진 문장을 분할하는 데 사용됩니다.

S.No 방법 및 설명
1

chunk()

이 방법은 작은 조각에 주어진 문장을 분할하는 데 사용됩니다. 그것은 문장의 토큰 및 수용 P 예술 O f를 S 매개 변수로 peech 태그를.

probs()

이 방법은 마지막 디코딩 순서의 확률을 반환합니다.


OpenNLP - 문장 검색

자연 언어 처리 문장의 시작과 끝을 결정하는 동안 해결해야 할 문제 중 하나입니다. 이 과정으로 알려져 S entence B oundary의 D isambiguation (SBD) 또는 단순히 문장 브레이킹.

우리는 주어진 텍스트에서 문장을 감지하는 데 사용하는 기술은 텍스트의 언어에 따라 달라집니다.


자바를 사용하여 문장 감지

우리는 정규 표현식을 사용하여 Java에서 주어진 텍스트의 문장, 간단한 규칙을 감지 할 수 있습니다.

예를 들어, 우리가 기간, 물음표를 가정하자, 또는 느낌표가 주어진 텍스트에서 문장을 종료, 우리가 사용하는 문장을 분할 할 수 있습니다 split() 의 방법 String 클래스를. 여기서 우리는 문자열 형식의 정규 표현식을 통과해야합니다.

다음은 자바 정규 표현식을 사용하여 주어진 텍스트의 문장을 결정하는 프로그램입니다 (split method) . 이름으로 파일에이 프로그램을 저장 SentenceDetection_RE.java .

public class SentenceDetection_RE {  
   public static void main(String args[]) { 
     
      String sentence = " Hi. How are you? Welcome to Tutorialspoint. " 
         + "We provide free tutorials on various technologies"; 
     
      String simple = "[.?!]";      
      String[] splitString = (sentence.split(simple) );     
      for (String string : splitString)   
         System.out.println(string) ;      
   } 
}

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행합니다.

javac SentenceDetection_RE.java 
java SentenceDetection_RE

실행에, 위의 프로그램은 다음과 같은 메시지를 표시하는 PDF 문서를 생성합니다.

Hi 
How are you 
Welcome to Tutorialspoint 
We provide free tutorials on various technologies

OpenNLP를 사용하여 문장 감지

문장을 감지하기 위해 OpenNLP는 미리 정의 된 모델이라는 파일 사용 en-sent.bin . 이 사전 정의 된 모델은 주어진 원시 텍스트에서 문장을 감지하도록 훈련된다.

opennlp.tools.sentdetect 패키지는 문장 탐지 작업을 수행하는 데 사용되는 클래스 및 인터페이스가 포함되어 있습니다.

OpenNLP 라이브러리를 사용하여 문장을 검색하려면 다음을 수행해야합니다 -

  • 부하 en-sent.bin 은 Using 모델 SentenceModel 클래스

  • 이 instantiate SentenceDetectorME 클래스를.

  • 사용하여 문장 감지 sentDetect() 이 클래스의 방법을.

다음 주어진 원시 텍스트에서 문장을 감지하는 프로그램을 작성하기 위해 따라야하는 단계입니다.

1 단계 : 모델을로드

문장 검출 모델의 이름은 클래스에 의해 표현된다 SentenceModel 패키지에 속하는, opennlp.tools.sentdetect .

문장 탐지 모델을로드하려면 -

  • 만들기 InputStream 모델의 개체를 (Instantiate the FileInputStream and pass the path of the model in String format to its constructor) .

  • 이 instantiate SentenceModel 클래스 및 전달 InputStream (object) 는 다음 코드 블록에 도시 된 바와 같이, 생성자 파라미터로서 모델을 -

//Loading sentence detector model 
InputStream inputStream = new FileInputStream("C:/OpenNLP_models/ensent.bin") ; 
SentenceModel model = new SentenceModel(inputStream) ;

2 단계 : SentenceDetectorME 클래스를 인스턴스화

SentenceDetectorME 패키지의 클래스 opennlp.tools.sentdetect 방법을 포함 문장에 원시 텍스트를 분할합니다. 이 클래스는 문장의 끝을 의미하는지 확인하기 위해 문자열의 끝 문장 문자를 평가하기 위해 최대 엔트로피 모델을 사용합니다.

이 클래스의 인스턴스를 아래와 같이, 이전 단계에서 생성 된 모델 객체를 전달한다.

//Instantiating the SentenceDetectorME class 
SentenceDetectorME detector = new SentenceDetectorME(model) ;

3 단계 : 문장을 검출

sentDetect() 의 방법 SentenceDetectorME 클래스는 전달 된 원시 텍스트에서 문장을 검색하는 데 사용됩니다. 이 방법은 매개 변수로 문자열 변수를 받아들입니다.

이 방법으로 문장의 문자열 형식을 전달하여,이 메소드를 호출합니다.

//Detecting the sentence 
String sentences[] = detector.sentDetect(sentence) ;

Example

다음은 주어진 원시 텍스트의 문장을 감지 프로그램입니다. 라는 이름의 파일이 프로그램을 저장 SentenceDetectionME.java .

import java.io.FileInputStream; 
import java.io.InputStream;  

import opennlp.tools.sentdetect.SentenceDetectorME; 
import opennlp.tools.sentdetect.SentenceModel;  

public class SentenceDetectionME { 
  
   public static void main(String args[]) throws Exception { 
   
      String sentence = "Hi. How are you? Welcome to Tutorialspoint. " 
         + "We provide free tutorials on various technologies"; 
       
      //Loading sentence detector model 
      InputStream inputStream = new FileInputStream("C:/OpenNLP_models/en-sent.bin") ; 
      SentenceModel model = new SentenceModel(inputStream) ; 
       
      //Instantiating the SentenceDetectorME class 
      SentenceDetectorME detector = new SentenceDetectorME(model) ;  
    
      //Detecting the sentence
      String sentences[] = detector.sentDetect(sentence) ; 
    
      //Printing the sentences 
      for(String sent : sentences)        
         System.out.println(sent) ;  
   } 
}

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac SentenceDetectorME.java 
java SentenceDetectorME

실행에서, 상기 프로그램은 소정의 문자열을 판독하고 상기 문장을 검출하고, 다음 출력을 표시한다.

Hi. How are you? 
Welcome to Tutorialspoint. 
We provide free tutorials on various technologies

명제의 위치를 ​​검출

우리는 또한 사용하여 문장의 위치를 감지 할 수 sentPosDetect() 의 방법 SentenceDetectorME class .

다음 주어진 원시 텍스트에서 문장의 위치를 ​​감지하는 프로그램을 작성하기 위해 따라야하는 단계입니다.

1 단계 : 모델을로드

문장 검출 모델의 이름은 클래스에 의해 표현된다 SentenceModel 패키지에 속하는, opennlp.tools.sentdetect .

문장 탐지 모델을로드하려면 -

  • 만들기 InputStream 모델의 개체를 (Instantiate the FileInputStream and pass the path of the model in String format to its constructor) .

  • 이 instantiate SentenceModel 클래스 및 전달 InputStream (object) 는 다음 코드 블록에 도시 된 바와 같이, 생성자 파라미터로서 모델을.

//Loading sentence detector model 
InputStream inputStream = new FileInputStream("C:/OpenNLP_models/en-sent.bin") ; 
SentenceModel model = new SentenceModel(inputStream) ;

2 단계 : SentenceDetectorME 클래스를 인스턴스화

SentenceDetectorME 패키지의 클래스 opennlp.tools.sentdetect 방법을 포함 문장에 원시 텍스트를 분할합니다. 이 클래스는 문장의 끝을 의미하는지 확인하기 위해 문자열의 끝 문장 문자를 평가하기 위해 최대 엔트로피 모델을 사용합니다.

이 클래스의 인스턴스를 생성하고 이전 단계에서 만든 모델 객체를 전달합니다.

//Instantiating the SentenceDetectorME class 
SentenceDetectorME detector = new SentenceDetectorME(model) ; 

3 단계 : 문장의 위치를 ​​검출

sentPosDetect() 의 방법 SentenceDetectorME 클래스는 전달 된 원시 텍스트 문장의 위치를 검출하는데 사용된다. 이 방법은 매개 변수로 문자열 변수를 받아들입니다.

이 방법에 대한 매개 변수로 문장의 문자열 형식을 전달하여,이 메소드를 호출합니다.

//Detecting the position of the sentences in the paragraph  
Span[] spans = detector.sentPosDetect(sentence) ; 

4 단계 : 문장의 스팬 인쇄

sentPosDetect() 의 방법 SentenceDetectorME 클래스 타입의 오브젝트의 배열 반환 Span . 의 스팬라는 이름의 클래스 opennlp.tools.util 패키지 세트의 시작과 끝 정수를 저장하는 데 사용됩니다.

사용자는 리턴하여 스팬 저장할 수 sentPosDetect() 스판 배열 방법을 다음 코드 블록에서와 같이, 그들을 출력한다.

//Printing the sentences and their spans of a sentence 
for (Span span : spans)         
System.out.println(paragraph.substring(span) ; 

Example

다음은 주어진 원시 텍스트의 문장을 감지 프로그램입니다. 라는 이름의 파일이 프로그램을 저장 SentenceDetectionME.java .

import java.io.FileInputStream; 
import java.io.InputStream; 
  
import opennlp.tools.sentdetect.SentenceDetectorME; 
import opennlp.tools.sentdetect.SentenceModel; 
import opennlp.tools.util.Span;

public class SentencePosDetection { 
  
   public static void main(String args[]) throws Exception { 
   
      String paragraph = "Hi. How are you? Welcome to Tutorialspoint. " 
         + "We provide free tutorials on various technologies"; 
       
      //Loading sentence detector model 
      InputStream inputStream = new FileInputStream("C:/OpenNLP_models/en-sent.bin") ; 
      SentenceModel model = new SentenceModel(inputStream) ; 
       
      //Instantiating the SentenceDetectorME class 
      SentenceDetectorME detector = new SentenceDetectorME(model) ;  
       
      //Detecting the position of the sentences in the raw text 
      Span spans[] = detector.sentPosDetect(paragraph) ; 
       
      //Printing the spans of the sentences in the paragraph 
      for (Span span : spans)         
         System.out.println(span) ;  
   } 
}

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac SentencePosDetection.java 
java SentencePosDetection

실행에서, 상기 프로그램은 소정의 문자열을 판독하고 상기 문장을 검출하고, 다음 출력을 표시한다.

[0..16) 
[17..43) 
[44..93)

자신의 포지션과 함께 문장

substring() String 클래스의 방법은 받아 begin 과 end offsets 하고 각각의 문자열을 반환합니다. 우리는 문장과 스팬 인쇄하려면이 방법을 사용할 수 있습니다 (positions) 다음 코드 블록에서와 같이, 함께.

for (Span span : spans)         
   System.out.println(sen.substring(span.getStart() , span.getEnd() )+" "+ span); 

다음은 주어진 원시 텍스트에서 문장을 감지하고 자신의 위치와 함께이를 표시 할 수있는 프로그램입니다. 이름을 가진 파일이 프로그램을 저장 SentencesAndPosDetection.java .

import java.io.FileInputStream; 
import java.io.InputStream;  

import opennlp.tools.sentdetect.SentenceDetectorME; 
import opennlp.tools.sentdetect.SentenceModel; 
import opennlp.tools.util.Span; 
   
public class SentencesAndPosDetection { 
  
   public static void main(String args[]) throws Exception { 
     
      String sen = "Hi. How are you? Welcome to Tutorialspoint." 
         + " We provide free tutorials on various technologies"; 
      //Loading a sentence model 
      InputStream inputStream = new FileInputStream("C:/OpenNLP_models/en-sent.bin") ; 
      SentenceModel model = new SentenceModel(inputStream) ; 
       
      //Instantiating the SentenceDetectorME class 
      SentenceDetectorME detector = new SentenceDetectorME(model) ;  
       
      //Detecting the position of the sentences in the paragraph  
      Span[] spans = detector.sentPosDetect(sen) ;  
      
      //Printing the sentences and their spans of a paragraph 
      for (Span span : spans)         
         System.out.println(sen.substring(span.getStart() , span.getEnd() )+" "+ span);  
   } 
}  

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac SentencesAndPosDetection.java 
java SentencesAndPosDetection

실행에, 위의 프로그램은 주어진 문자열을 읽고 자신의 위치와 함께 문장을 감지하고 다음과 같은 출력을 표시합니다.

Hi. How are you? [0..16) 
Welcome to Tutorialspoint. [17..43)  
We provide free tutorials on various technologies [44..93)

문장 확률 감지

getSentenceProbabilities() 의 방법 SentenceDetectorME 클래스는 가장 최근 통화와 관련된 확률 반환 sentDetect() 메소드를.

//Getting the probabilities of the last decoded sequence       
double[] probs = detector.getSentenceProbabilities() ; 

다음은에 대한 호출과 관련된 확률 인쇄 할 수있는 프로그램입니다 sentDetect() 메소드를. 이름으로 파일에이 프로그램을 저장 SentenceDetectionMEProbs.java .

import java.io.FileInputStream; 
import java.io.InputStream;  

import opennlp.tools.sentdetect.SentenceDetectorME; 
import opennlp.tools.sentdetect.SentenceModel;  

public class SentenceDetectionMEProbs { 
  
   public static void main(String args[]) throws Exception { 
   
      String sentence = "Hi. How are you? Welcome to Tutorialspoint. " 
         + "We provide free tutorials on various technologies"; 
       
      //Loading sentence detector model 
      InputStream inputStream = new FileInputStream("C:/OpenNLP_models/en-sent.bin") ;
      SentenceModel model = new SentenceModel(inputStream) ; 
       
      //Instantiating the SentenceDetectorME class
      SentenceDetectorME detector = new SentenceDetectorME(model) ;  
      
      //Detecting the sentence 
      String sentences[] = detector.sentDetect(sentence) ; 
    
      //Printing the sentences 
      for(String sent : sentences)        
         System.out.println(sent) ;   
         
      //Getting the probabilities of the last decoded sequence       
      double[] probs = detector.getSentenceProbabilities() ; 
       
      System.out.println("  ") ; 
       
      for(int i = 0; i<probs.length; i++) 
         System.out.println(probs[i]) ; 
   } 
}       

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac SentenceDetectionMEProbs.java 
java SentenceDetectionMEProbs

실행에, 위의 프로그램은 주어진 문자열을 읽고 문장을 감지하고이를 인쇄합니다. 또한, 그것은 또한 가장 최근 통화와 관련된 확률 반환 sentDetect() 아래 그림과 같이, 방법.

Hi. How are you? 
Welcome to Tutorialspoint. 
We provide free tutorials on various technologies 
   
0.9240246995179983 
0.9957680129995953 
1.0

OpenNLP - 토큰 화

작은 부분으로 주어진 문장을 자르고 프로세스 (tokens) 라고도 tokenization . 일반적으로, 주어진 원 텍스트 구분의 세트에 기초하여 토큰 화되고 (mostly whitespaces) .

토큰 화 등의 맞춤법 검사 처리의 검색, 음성 식별 부, 예문 검색, 문서의 문서 분류와 같은 작업에 사용되는


OpenNLP를 사용하여 토큰 화

opennlp.tools.tokenize 패키지는 토큰 화를 수행하기 위해 사용되는 클래스 및 인터페이스를 포함한다.

간단한 조각으로 주어진 문장을 토큰 화하려면 OpenNLP 라이브러리는 세 가지 클래스를 제공합니다 -

  • SimpleTokenizer -이 클래스는 문자 클래스를 사용해, 지정된 원시 텍스트를 토큰 화합니다.

  • WhitespaceTokenizer -이 클래스는 주어진 텍스트를 토큰 화하기 위해 공백을 사용합니다.

  • TokenizerME -이 클래스는 별도의 토큰으로 변환 텍스트를 변환합니다. 그것은 그것의 결정을 내릴 최대 엔트로피를 사용합니다.

SimpleTokenizer

사용하여 문장을 토큰 화하기 위해 SimpleTokenizer 클래스를, 당신이 필요 -

  • 각 클래스의 객체를 생성합니다.

  • 사용하여 문장을 토큰 화 tokenize() 메소드를.

  • 토큰을 인쇄합니다.

다음 주어진 원시 텍스트를 토큰 화하는 프로그램을 작성하기 위해 따라야하는 단계입니다.

Step 1 - 각각의 클래스를 인스턴스화

두 클래스에서, 그것들을 초기화하는 데 사용할 수 생성자가 없습니다. 따라서, 우리는 정적 변수 사용하여 이러한 클래스의 개체를 만들 필요가 INSTANCE .

SimpleTokenizer tokenizer = SimpleTokenizer.INSTANCE;   

Step 2 - 문장을 토큰 화

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

이 두 클래스는 메소드 호출 포함 tokenize() . 이 방법은 문자열 형식의 원시 텍스트를 받아들입니다. 호출, 그것은 주어진 문자열을 토큰 화 및 문자열의 배열을 반환합니다 (tokens) .

문장은 USING 토큰 화 tokenizer() 아래와 같은 방법.

//Tokenizing the given sentence 
 String tokens[] = tokenizer.tokenize(sentence) ; 

Step 3 - 토큰을 인쇄

문장을 토큰 화 한 후 사용하여 토큰을 인쇄 할 수 있습니다 for loop 다음과 같이.

//Printing the tokens 
for(String token : tokens)       
   System.out.println(token) ;

Example

다음은 SimpleTokenizer 클래스를 사용하여 주어진 문장을 토큰 화 프로그램이다. 이름으로 파일에이 프로그램을 저장 SimpleTokenizerExample.java .

import opennlp.tools.tokenize.SimpleTokenizer;  
public class SimpleTokenizerExample { 
   public static void main(String args[]) { 
     
      String sentence = "Hi. How are you? Welcome to Tutorialspoint. " 
         + "We provide free tutorials on various technologies"; 
    
      //Instantiating SimpleTokenizer class 
      SimpleTokenizer simpleTokenizer = SimpleTokenizer.INSTANCE;  
       
      //Tokenizing the given sentence 
      String tokens[] = simpleTokenizer.tokenize(sentence) ;  
       
      //Printing the tokens 
      for(String token : tokens) {         
         System.out.println(token) ;  
      }       
   }  
}

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac SimpleTokenizerExample.java 
java SimpleTokenizerExample

실행에서, 상기 프로그램은 소정의 문자열 판독 (raw text) 를 토큰 화, 다음 출력을 표시 -

Hi 
. 
How 
are 
you 
? 
Welcome 
to 
Tutorialspoint 
. 
We 
provide 
free 
tutorials 
on 
various 
technologies 

 

WhitespaceTokenizer

사용하여 문장을 토큰 화하기 위해 WhitespaceTokenizer 클래스를, 당신이 필요 -

  • 각 클래스의 객체를 생성합니다.

  • 사용하여 문장을 토큰 화 tokenize() 메소드를.

  • 토큰을 인쇄합니다.

다음 주어진 원시 텍스트를 토큰 화하는 프로그램을 작성하기 위해 따라야하는 단계입니다.

Step 1 - 각각의 클래스를 인스턴스화

두 클래스에서, 그것들을 초기화하는 데 사용할 수 생성자가 없습니다. 따라서, 우리는 정적 변수 사용하여 이러한 클래스의 개체를 만들 필요가 INSTANCE .

WhitespaceTokenizer tokenizer = WhitespaceTokenizer.INSTANCE; 

Step 2 - 문장을 토큰 화

이 두 클래스는 메소드 호출 포함 tokenize() . 이 방법은 문자열 형식의 원시 텍스트를 받아들입니다. 호출, 그것은 주어진 문자열을 토큰 화 및 문자열의 배열을 반환합니다 (tokens) .

문장은 USING 토큰 화 tokenizer() 아래와 같은 방법.

//Tokenizing the given sentence 
 String tokens[] = tokenizer.tokenize(sentence) ; 

Step 3 - 토큰을 인쇄

문장을 토큰 화 한 후 사용하여 토큰을 인쇄 할 수 있습니다 for loop 다음과 같이.

//Printing the tokens 
for(String token : tokens)       
   System.out.println(token) ;

Example

다음은 사용 주어진 문장 토큰 화 프로그램입니다 WhitespaceTokenizer 클래스를. 이름으로 파일에이 프로그램을 저장 WhitespaceTokenizerExample.java .

import opennlp.tools.tokenize.WhitespaceTokenizer;  

public class WhitespaceTokenizerExample {  
   
   public static void main(String args[]) { 
     
      String sentence = "Hi. How are you? Welcome to Tutorialspoint. " 
         + "We provide free tutorials on various technologies"; 
    
      //Instantiating whitespaceTokenizer class 
       WhitespaceTokenizer whitespaceTokenizer = WhitespaceTokenizer.INSTANCE;  
       
      //Tokenizing the given paragraph 
      String tokens[] = whitespaceTokenizer.tokenize(sentence) ;  
       
      //Printing the tokens 
      for(String token : tokens)     
         System.out.println(token) ;        
   } 
}

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac WhitespaceTokenizerExample.java 
java WhitespaceTokenizerExample 

실행에서, 상기 프로그램은 소정의 문자열 판독 (raw text) 를 토큰 화, 다음과 같은 결과를 표시한다.

Hi. 
How 
are 
you? 
Welcome 
to 
Tutorialspoint. 
We 
provide 
free 
tutorials 
on 
various 
technologies

TokenizerME 클래스

OpenNLP 또한 문장을 토큰 화하는 미리 정의 된 모델, 파일 이름을 드 token.bin를 사용합니다. 주어진 원시 텍스트로 문장을 토큰 화하는 훈련이다.

TokenizerME 의 클래스 opennlp.tools.tokenizer 패키지는이 모델을로드하고 OpenNLP 라이브러리를 사용하여 주어진 원시 텍스트를 토큰 화하는 데 사용됩니다. 이렇게하려면 다음을 수행해야합니다 -

  • 부하 en-token.bin 은 Using 모델 TokenizerModel 클래스를.

  • 이 instantiate TokenizerME 클래스를.

  • 사용하여 문장 토큰 화 tokenize() 이 클래스의 방법을.

다음은 사용해, 지정된 원시 텍스트에서 문장 토큰 화 프로그램 작성 따라야하는 단계입니다 TokenizerME 클래스.

Step 1 - 모델로드

토큰 화를위한 모델의 이름은 클래스에 의해 표현된다 TokenizerModel 패키지에 속하는, opennlp.tools.tokenize .

토크 나이 모델을로드하려면 -

  • 만들기 InputStream 모델의 개체를 (Instantiate the FileInputStream and pass the path of the model in String format to its constructor) .

  • 이 instantiate TokenizerModel 클래스 및 전달 InputStream (object) 는 다음 코드 블록에 도시 된 바와 같이, 생성자 파라미터로서 모델을.

//Loading the Tokenizer model 
InputStream inputStream = new FileInputStream("C:/OpenNLP_models/en-token.bin") ; 
TokenizerModel tokenModel = new TokenizerModel(inputStream) ;

Step 2 - TokenizerME 클래스를 인스턴스화

TokenizerME 패키지의 클래스 opennlp.tools.tokenize 작은 부분에 원시 텍스트 잘라하는 방법을 포함 (tokens) . 그것은 그것의 결정을 내릴 최대 엔트로피를 사용합니다.

이 클래스의 인스턴스를 아래와 같이 이전 단계에서 생성 된 모델 객체를 전달한다.

//Instantiating the TokenizerME class 
TokenizerME tokenizer = new TokenizerME(tokenModel) ;

Step 3 - 문장을 토큰 화

tokenize() 의 방법 TokenizerME 클래스는 전달 된 변환 텍스트를 토큰 화하는데 사용된다. 이 방법은 파라미터로서 문자열 변수를 수용하고, 문자열 배열 반환 (tokens) .

다음과 같이이 방법으로 문장의 문자열 형식을 전달하여,이 메소드를 호출합니다.

//Tokenizing the given raw text 
String tokens[] = tokenizer.tokenize(paragraph) ;

Example

다음은 주어진 원시 텍스트를 토큰 화 프로그램이다. 이름을 가진 파일이 프로그램을 저장 TokenizerMEExample.java .

import java.io.FileInputStream; 
import java.io.InputStream; 
import opennlp.tools.tokenize.TokenizerME; 
import opennlp.tools.tokenize.TokenizerModel;  

public class TokenizerMEExample { 
  
   public static void main(String args[]) throws Exception{     
     
      String sentence = "Hi. How are you? Welcome to Tutorialspoint. " 
            + "We provide free tutorials on various technologies"; 
       
      //Loading the Tokenizer model 
      InputStream inputStream = new FileInputStream("C:/OpenNLP_models/en-token.bin") ; 
      TokenizerModel tokenModel = new TokenizerModel(inputStream) ; 
       
      //Instantiating the TokenizerME class 
      TokenizerME tokenizer = new TokenizerME(tokenModel) ; 
       
      //Tokenizing the given raw text 
      String tokens[] = tokenizer.tokenize(sentence) ;       
          
      //Printing the tokens  
      for (String a : tokens) 
         System.out.println(a) ; 
   } 
} 

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac TokenizerMEExample.java 
java TokenizerMEExample

실행에, 위의 프로그램은 주어진 문자열을 읽고 그 안에 문장을 감지하고 다음과 같은 출력을 표시합니다 -

Hi 
. 
How 
are 
you 
? 
Welcome 
to 
Tutorialspoint 
. 
We 
provide 
free 
tutorials 
on 
various 
technologie

토큰의 위치를 ​​가져 오는 중

우리는 또한 위치 또는 얻을 수 spans 은 Using 토큰의 tokenizePos() 메소드를. 이 패키지의 토크 나이 인터페이스의 방법이다 opennlp.tools.tokenize . 모든 때문에 (three) 토큰 화 클래스는이 인터페이스를 구현, 당신은 그들 모두에서이 방법을 찾을 수 있습니다.

이 방법은 문자열의 형태로 문장 또는 원시 텍스트를 받아들이고 유형의 객체의 배열 반환 Span .

당신은 사용하여 토큰의 위치를 얻을 수있다 tokenizePos() 다음과 같이 방법 -

//Retrieving the tokens 
tokenizer.tokenizePos(sentence) ; 

인쇄 위치 (spans)

라는 이름의 클래스 Span 의 opennlp.tools.util 패키지 세트의 시작과 끝 정수를 저장하는 데 사용됩니다.

사용자는 리턴하여 스팬 저장할 수 tokenizePos() 스판 배열 방법을 다음 코드 블록에서와 같이, 그들을 출력한다.

//Retrieving the tokens 
Span[] tokens = tokenizer.tokenizePos(sentence) ;
//Printing the spans of tokens 
for( Span token : tokens)        
   System.out.println(token) ;

함께 인쇄 토큰과 자신의 위치

substring() String 클래스의 방법은 받아 begin 과 end 오프셋을하고 각각의 문자열을 반환합니다. 우리는 토큰 및 그 지속 기간이 인쇄 방법을 사용할 수있다 (positions) 는 다음 코드 블록에서와 같이, 서로.

//Printing the spans of tokens 
for(Span token : tokens)  
   System.out.println(token +" "+sent.substring(token.getStart() , token.getEnd() ));

 

Example(SimpleTokenizer)

다음은 사용 원시 텍스트의 토큰 스팬 검색하는 프로그램입니다 SimpleTokenizer 클래스를. 또한 자신의 위치와 함께 토큰을 인쇄합니다. 라는 이름의 파일이 프로그램을 저장 SimpleTokenizerSpans.java .

import opennlp.tools.tokenize.SimpleTokenizer; 
import opennlp.tools.util.Span;  

public class SimpleTokenizerSpans {  
   public static void main(String args[]) { 
     
      String sent = "Hi. How are you? Welcome to Tutorialspoint. " 
         + "We provide free tutorials on various technologies"; 
    
      //Instantiating SimpleTokenizer class 
      SimpleTokenizer simpleTokenizer = SimpleTokenizer.INSTANCE;  
       
      //Retrieving the boundaries of the tokens 
      Span[] tokens = simpleTokenizer.tokenizePos(sent) ;  
       
      //Printing the spans of tokens 
      for( Span token : tokens)
         System.out.println(token +" "+sent.substring(token.getStart() , token.getEnd() ));          
   } 
}      

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac SimpleTokenizerSpans.java 
java SimpleTokenizerSpans 

실행에서, 상기 프로그램은 소정의 문자열 판독 (raw text) 를 토큰 화, 다음 출력을 표시 -

[0..2) Hi 
[2..3) . 
[4..7) How 
[8..11) are 
[12..15) you 
[15..16) ? 
[17..24) Welcome 
[25..27) to 
[28..42) Tutorialspoint 
[42..43) . 
[44..46) We 
[47..54) provide 
[55..59) free 
[60..69) tutorials 
[70..72) on 
[73..80) various 
[81..93) technologies 

 

Example (WhitespaceTokenizer)

다음은 사용 원시 텍스트의 토큰 스팬 검색하는 프로그램입니다 WhitespaceTokenizer 클래스를. 또한 자신의 위치와 함께 토큰을 인쇄합니다. 이름으로 파일에이 프로그램을 저장 WhitespaceTokenizerSpans.java .

import opennlp.tools.tokenize.WhitespaceTokenizer;
import opennlp.tools.util.Span; 
public class WhitespaceTokenizerSpans {  
   public static void main(String args[]) { 
     
      String sent = "Hi. How are you? Welcome to Tutorialspoint. " 
         + "We provide free tutorials on various technologies"; 
    
      //Instantiating SimpleTokenizer class 
      WhitespaceTokenizer whitespaceTokenizer = WhitespaceTokenizer.INSTANCE;  
       
      //Retrieving the tokens 
      Span[] tokens = whitespaceTokenizer.tokenizePos(sent) ;  
       
      //Printing the spans of tokens 
      for( Span token : tokens) 
         System.out.println(token +" 
            "+sent.substring(token.getStart() , token.getEnd() ));        
   } 
} 

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행

javac WhitespaceTokenizerSpans.java 
java WhitespaceTokenizerSpans

실행에서, 상기 프로그램은 소정의 문자열 판독 (raw text) 를 토큰 화, 다음과 같은 결과를 표시한다.

[0..3) Hi. 
[4..7) How 
[8..11) are 
[12..16) you? 
[17..24) Welcome 
[25..27) to 
[28..43) Tutorialspoint. 
[44..46) We 
[47..54) provide 
[55..59) free
[60..69) tutorials 
[70..72) on 
[73..80) various 
[81..93) technologies

 

Example (TokenizerME)

다음은 사용 원시 텍스트의 토큰 스팬 검색하는 프로그램입니다 TokenizerME 클래스를. 또한 자신의 위치와 함께 토큰을 인쇄합니다. 이름을 가진 파일이 프로그램을 저장 TokenizerMESpans.java .

import java.io.FileInputStream; 
import java.io.InputStream; 
import opennlp.tools.tokenize.TokenizerME; 
import opennlp.tools.tokenize.TokenizerModel; 
import opennlp.tools.util.Span;  

public class TokenizerMESpans { 
   public static void main(String args[]) throws Exception{     
      String sent = "Hello John how are you welcome to Tutorialspoint"; 
       
      //Loading the Tokenizer model 
      InputStream inputStream = new FileInputStream("C:/OpenNLP_models/en-token.bin") ; 
      TokenizerModel tokenModel = new TokenizerModel(inputStream) ; 
       
      //Instantiating the TokenizerME class 
      TokenizerME tokenizer = new TokenizerME(tokenModel) ; 
       
      //Retrieving the positions of the tokens 
      Span tokens[] = tokenizer.tokenizePos(sent) ; 
       
      //Printing the spans of tokens 
      for(Span token : tokens) 
         System.out.println(token +" "+sent.substring(token.getStart() , token.getEnd() ));      
   } 
} 

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac TokenizerMESpans.java 
java TokenizerMESpans

실행에서, 상기 프로그램은 소정의 문자열 판독 (raw text) 를 토큰 화, 다음 출력을 표시 -

[0..5) Hello 
[6..10) John 
[11..14) how 
[15..18) are 
[19..22) you 
[23..30) welcome 
[31..33) to 
[34..48) Tutorialspoint 

토크 나이 확률

getTokenProbabilities() TokenizerME 클래스의 방법은 가장 최근 통화와 관련된 확률 가져 오는 데 사용됩니다 tokenizePos() 메소드를.

//Getting the probabilities of the recent calls to tokenizePos() method 
double[] probs = detector.getSentenceProbabilities() ; 

다음은에 대한 호출과 관련된 확률 인쇄 할 수있는 프로그램입니다 tokenizePos() 메소드를. 이름을 가진 파일이 프로그램을 저장 TokenizerMEProbs.java .

import java.io.FileInputStream; 
import java.io.InputStream; 
import opennlp.tools.tokenize.TokenizerME; 
import opennlp.tools.tokenize.TokenizerModel; 
import opennlp.tools.util.Span;  

public class TokenizerMEProbs { 
   
   public static void main(String args[]) throws Exception{     
      String sent = "Hello John how are you welcome to Tutorialspoint"; 
      
      //Loading the Tokenizer model 
      InputStream inputStream = new FileInputStream("C:/OpenNLP_models/en-token.bin") ; 
      TokenizerModel tokenModel = new TokenizerModel(inputStream) ; 
      
      //Instantiating the TokenizerME class 
      TokenizerME tokenizer = new TokenizerME(tokenModel) ;
      
      //Retrieving the positions of the tokens 
      Span tokens[] = tokenizer.tokenizePos(sent) ; 
       
      //Getting the probabilities of the recent calls to tokenizePos() method 
      double[] probs = tokenizer.getTokenProbabilities() ; 
       
      //Printing the spans of tokens 
      for(Span token : tokens) 
         System.out.println(token +" "+sent.substring(token.getStart() , token.getEnd() ));      
         System.out.println("  ") ; 
         for(int i = 0; i<probs.length; i++) 
            System.out.println(probs[i]) ;          
   } 
}      

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac TokenizerMEProbs.java 
java TokenizerMEProbs 

실행에, 위의 프로그램은 주어진 문자열을 읽고 문장을 토큰 화하고이를 인쇄합니다. 또한, 그것은 또한 가장 최근 통화와 관련된 확률 반환 tokenizerPos() 메소드를.

[0..5) Hello 
[6..10) John 
[11..14) how 
[15..18) are 
[19..22) you 
[23..30) welcome 
[31..33) to 
[34..48) Tutorialspoint 
   
1.0 
1.0 
1.0 
1.0 
1.0 
1.0 
1.0 
1.0

OpenNLP - 엔티티 인식 명명

주어진 텍스트에서, 이름, 사람, 장소 및 기타 기관을 찾는 과정은 다음과 같이 알려져 N 아메드 E ntity의 R ecognition (NER) . 이 장에서는 OpenNLP 라이브러리를 사용하여 Java 프로그램을 통해 NER을 수행하는 방법에 대해 설명합니다.


엔티티 인식이 열려 NLP를 사용하여 명명

다양한 NER 작업을 수행하려면, OpenNLP 즉, en-nerdate.bn, EN-NER-location.bin, EN-NER-organization.bin, EN-NER-person.bin 및 EN-NER-시간을 미리 정의 된 다른 모델을 사용합니다. 큰 상자. 이러한 모든 파일은 주어진 원시 텍스트의 각 요소를 감지하는 훈련을 미리 정의 된 모델입니다.

opennlp.tools.namefind 패키지는 NER 작업을 수행하는 데 사용되는 클래스 및 인터페이스가 포함되어 있습니다. OpenNLP 라이브러리를 사용하여 NER 작업을 수행하려면 다음을 수행해야합니다 -

  • 사용하여 각각의 모델로드 TokenNameFinderModel 클래스를.

  • 이 instantiate NameFinder 클래스를.

  • 이름을 찾아 그들을 인쇄 할 수 있습니다.

다음 주어진 원시 텍스트에서 이름 엔티티를 감지하는 프로그램을 작성하기 위해 따라야하는 단계입니다.

1 단계 : 모델을로드

문장 검출 모델의 이름은 클래스에 의해 표현된다 TokenNameFinderModel 패키지에 속하는, opennlp.tools.namefind .

NER 모델을로드하려면 -

  • 만들기 InputStream 모델의 개체를 (Instantiate the FileInputStream and pass the path of the appropriate NER model in String format to its constructor) .

  • 이 instantiate TokenNameFinderModel 클래스 및 전달 InputStream (object) 는 다음 코드 블록에 도시 된 바와 같이, 생성자 파라미터로서 모델을.

//Loading the NER-person model 
InputStream inputStreamNameFinder = new FileInputStream(".../en-nerperson.bin") ;       
TokenNameFinderModel model = new TokenNameFinderModel(inputStreamNameFinder) ;

2 단계 : NameFinderME 클래스를 인스턴스화

NameFinderME 패키지의 클래스 opennlp.tools.namefind NER 작업을 수행하는 방법이 포함되어 있습니다. 이 클래스는 주어진 원시 텍스트로 명명 된 개체를 찾기 위해 최대 엔트로피 모델을 사용합니다.

이 클래스의 인스턴스를 아래와 같이 이전 단계에서 생성 된 모델 객체를 전달 -

//Instantiating the NameFinderME class 
NameFinderME nameFinder = new NameFinderME(model) ;

3 단계 : 문장에서 이름을 찾기

find() 의 방법 NameFinderME 클래스는 전달 된 원시 텍스트로 이름을 검색하는 데 사용됩니다. 이 방법은 매개 변수로 문자열 변수를 받아들입니다.

이 방법으로 문장의 문자열 형식을 전달하여,이 메소드를 호출합니다.

//Finding the names in the sentence 
Span nameSpans[] = nameFinder.find(sentence) ;

4 단계 : 문장에서 이름의 스팬 인쇄

find() 의 방법 NameFinderME 클래스는 유형 스팬의 객체의 배열을 반환합니다. 의 스팬라는 이름의 클래스 opennlp.tools.util 패키지는 저장하는 데 사용되는 start 과 end 집합의 정수를.

당신은에 의해 반환 된 스팬 저장할 수 있습니다 find() 스팬 배열 방법을 다음과 같은 코드 블록에서와 같이, 그것들을 인쇄 할 수 있습니다.

//Printing the sentences and their spans of a sentence 
for (Span span : spans)         
System.out.println(paragraph.substring(span) ;

NER Example

다음은 주어진 문장을 읽고 그 안에있는 사람의 이름의 스팬을 인식하는 프로그램입니다. 이름을 가진 파일이 프로그램을 저장 NameFinderME_Example.java .

import java.io.FileInputStream; 
import java.io.InputStream;  

import opennlp.tools.namefind.NameFinderME; 
import opennlp.tools.namefind.TokenNameFinderModel; 
import opennlp.tools.util.Span;  

public class NameFinderME_Example { 
   public static void main(String args[]) throws Exception{ 
      /Loading the NER - Person model       InputStream inputStream = new 
         FileInputStream("C:/OpenNLP_models/en-ner-person.bin") ; 
      TokenNameFinderModel model = new TokenNameFinderModel(inputStream) ;
      
      //Instantiating the NameFinder class 
      NameFinderME nameFinder = new NameFinderME(model) ; 
    
      //Getting the sentence in the form of String array  
      String [] sentence = new String[]{ 
         "Mike" , 
         "and" , 
         "Smith" , 
         "are" , 
         "good" , 
         "friends" 
      }; 
       
      //Finding the names in the sentence 
      Span nameSpans[] = nameFinder.find(sentence) ; 
       
      //Printing the spans of the names in the sentence 
      for(Span s: nameSpans) 
         System.out.println(s.toString() );    
   }    
}      

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac NameFinderME_Example.java 
java NameFinderME_Example

실행에서, 상기 프로그램은 소정의 문자열 판독 (raw text) , 그 안에있는 사람들의 이름을 검출하고, 그 위치를 표시 (spans) 아래와 같이.

[0..1) person 
[2..3) person 

자신의 포지션과 함께 이름

substring() String 클래스의 방법은 받아 begin 과 end offsets 하고 각각의 문자열을 반환합니다. 우리는 이름과 스팬 인쇄하려면이 방법을 사용할 수 있습니다 (positions) 다음 코드 블록에서와 같이, 함께.

for(Span s: nameSpans)        
   System.out.println(s.toString() +"  "+tokens[s.getStart() ]);

다음은 주어진 원시 텍스트에서 이름을 감지하고 자신의 위치와 함께이를 표시 할 수있는 프로그램입니다. 이름을 가진 파일이 프로그램을 저장 NameFinderSentences.java .

import java.io.FileInputStream; 
import java.io.InputStream;  

import opennlp.tools.namefind.NameFinderME; 
import opennlp.tools.namefind.TokenNameFinderModel; 
import opennlp.tools.tokenize.TokenizerME; 
import opennlp.tools.tokenize.TokenizerModel; 
import opennlp.tools.util.Span;  

public class NameFinderSentences {  
   public static void main(String args[]) throws Exception{        
      
      //Loading the tokenizer model 
      InputStream inputStreamTokenizer = new 
         FileInputStream("C:/OpenNLP_models/entoken.bin") ;
      TokenizerModel tokenModel = new TokenizerModel(inputStreamTokenizer) ; 
       
      //Instantiating the TokenizerME class 
      TokenizerME tokenizer = new TokenizerME(tokenModel) ; 
       
      //Tokenizing the sentence in to a string array 
      String sentence = "Mike is senior programming 
      manager and Rama is a clerk both are working at 
      Tutorialspoint"; 
      String tokens[] = tokenizer.tokenize(sentence) ; 
       
      //Loading the NER-person model 
      InputStream inputStreamNameFinder = new 
         FileInputStream("C:/OpenNLP_models/enner-person.bin") ;       
      TokenNameFinderModel model = new TokenNameFinderModel(inputStreamNameFinder) ;
      
      //Instantiating the NameFinderME class 
      NameFinderME nameFinder = new NameFinderME(model) ;       
      
      //Finding the names in the sentence 
      Span nameSpans[] = nameFinder.find(tokens) ;        
      
      //Printing the names and their spans in a sentence 
      for(Span s: nameSpans)        
         System.out.println(s.toString() +"  "+tokens[s.getStart() ]);      
   }    
} 

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac NameFinderSentences.java 
java NameFinderSentences 

실행에서, 상기 프로그램은 소정의 문자열 판독 (raw text) , 그 안에있는 사람들의 이름을 검출하고, 그 위치를 표시 (spans) 아래와 같이.

[0..1) person  Mike

위치의 이름을 찾기

다양한 모델을로드하여 다양한라는 이름의 실체를 감지 할 수 있습니다. 다음은로드하는 자바 프로그램이다 en-ner-location.bin 모델을 주어진 문장의 위치 이름을 검색합니다. 이름을 가진 파일이 프로그램을 저장 LocationFinder.java .

import java.io.FileInputStream; 
import java.io.InputStream;  

import opennlp.tools.namefind.NameFinderME; 
import opennlp.tools.namefind.TokenNameFinderModel; 
import opennlp.tools.tokenize.TokenizerME; 
import opennlp.tools.tokenize.TokenizerModel; 
import opennlp.tools.util.Span;  

public class LocationFinder { 
   public static void main(String args[]) throws Exception{
 
      InputStream inputStreamTokenizer = new 
         FileInputStream("C:/OpenNLP_models/entoken.bin") ; 
      TokenizerModel tokenModel = new TokenizerModel(inputStreamTokenizer) ; 
       
      //String paragraph = "Mike and Smith are classmates"; 
      String paragraph = "Tutorialspoint is located in Hyderabad"; 
        
      //Instantiating the TokenizerME class 
      TokenizerME tokenizer = new TokenizerME(tokenModel) ; 
      String tokens[] = tokenizer.tokenize(paragraph) ; 
       
      //Loading the NER-location moodel 
      InputStream inputStreamNameFinder = new 
         FileInputStream("C:/OpenNLP_models/en- ner-location.bin") ;       
      TokenNameFinderModel model = new TokenNameFinderModel(inputStreamNameFinder) ; 
        
      //Instantiating the NameFinderME class 
      NameFinderME nameFinder = new NameFinderME(model) ;      
        
      //Finding the names of a location 
      Span nameSpans[] = nameFinder.find(tokens) ;        
      //Printing the spans of the locations in the sentence 
      for(Span s: nameSpans)        
         System.out.println(s.toString() +"  "+tokens[s.getStart() ]); 
   }    
}   

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac LocationFinder.java 
java LocationFinder

실행에서, 상기 프로그램은 소정의 문자열 판독 (raw text) , 그 안에있는 사람들의 이름을 검출하고, 그 위치를 표시 (spans) 아래와 같이.

[4..5) location  Hyderabad

NameFinder에서 확률

probs() 의 방법 NameFinderME 클래스의 마지막 복호화 순서의 확률을 얻기 위해 사용된다.

double[] probs = nameFinder.probs() ; 

다음은 확률을 인쇄 할 수있는 프로그램입니다. 이름을 가진 파일이 프로그램을 저장 TokenizerMEProbs.java .

import java.io.FileInputStream; 
import java.io.InputStream; 
import opennlp.tools.tokenize.TokenizerME; 
import opennlp.tools.tokenize.TokenizerModel; 
import opennlp.tools.util.Span; 
public class TokenizerMEProbs { 
   public static void main(String args[]) throws Exception{     
      String sent = "Hello John how are you welcome to Tutorialspoint"; 
       
      //Loading the Tokenizer model 
      InputStream inputStream = new 
         FileInputStream("C:/OpenNLP_models/en-token.bin") ; 
      TokenizerModel tokenModel = new TokenizerModel(inputStream) ; 
       
      //Instantiating the TokenizerME class 
      TokenizerME tokenizer = new TokenizerME(tokenModel) ; 
       
      //Retrieving the positions of the tokens 
      Span tokens[] = tokenizer.tokenizePos(sent) ; 
       
      //Getting the probabilities of the recent calls to tokenizePos() method 
      double[] probs = tokenizer.getTokenProbabilities() ; 
       
      //Printing the spans of tokens 
      for( Span token : tokens) 
         System.out.println(token +" 
            "+sent.substring(token.getStart() , token.getEnd() ));      
         System.out.println("  ") ; 
      for(int i = 0; i<probs.length; i++) 
         System.out.println(probs[i]) ;          
   } 
}

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac TokenizerMEProbs.java 
java TokenizerMEProbs

실행에, 위의 프로그램은, 지정된 String를 읽고 문장을 토큰 화하고이를 인쇄합니다. 아래와 같이 또한, 또한, 마지막 디코딩 된 시퀀스의 확률을 돌려 준다.

[0..5) Hello 
[6..10) John 
[11..14) how 
[15..18) are 
[19..22) you 
[23..30) welcome 
[31..33) to 
[34..48) Tutorialspoint 
   
1.0 
1.0 
1.0 
1.0 
1.0 
1.0 
1.0 
1.0

OpenNLP은 - 품사 찾기

OpenNLP를 사용하여, 당신은 또한 주어진 문장의 음성의 부품을 감지하고 인쇄 할 수 있습니다. 대신 품사의 이름으로, OpenNLP 음성의 각 부분의 짧은 형태를 사용합니다. 다음 표는 OpenNLP와 그 의미에 의해 감지 연설의 여러 부분을 나타냅니다.

품사 품사의 의미
NN 명사, 단수 또는 대량
DT 결정
VB 동사, 기본 양식
VBD 동사 과거 시제
VBZ 동사 제삼자 단수 본
에서 전치사 또는 종속 연계
NNP 고유 명사, 단수
JJ 형용사

음성의 부품 태그

문장의 품사에 태그를 OpenNLP는 모델이라는 파일 사용 en-posmaxent.bin . 이것은 주어진 원시 텍스트의 품사 태그를 훈련하는 미리 정의 된 모델이다.

POSTaggerME 의 클래스 opennlp.tools.postag 패키지는이 모델을로드하고 OpenNLP 라이브러리를 사용하여 주어진 원시 텍스트의 품사 태그를 사용한다. 이렇게하려면 다음을 수행해야합니다 -

  • 부하 en-pos-maxent.bin 은 Using 모델 POSModel 클래스를.

  • 이 instantiate POSTaggerME 클래스를.

  • 문장을 토큰 화.

  • 사용하여 태그 생성 tag() 메소드를.

  • 사용하여 토큰 및 태그 인쇄 POSSample 클래스를.

다음은 사용해, 지정된 원시 텍스트의 품사 태그 프로그램 작성 따라야하는 단계입니다 POSTaggerME 클래스.

1 단계 : 모델을로드

POS 태그에 대한 모델의 이름은 클래스에 의해 표현된다 POSModel 패키지에 속하는, opennlp.tools.postag .

토크 나이 모델을로드하려면 -

  • 만들기 InputStream 모델의 개체를 (Instantiate the FileInputStream and pass the path of the model in String format to its constructor) .

  • 이 instantiate POSModel 클래스 및 전달 InputStream (object) 는 다음 코드 블록에 도시 된 바와 같이, 생성자 파라미터로서 모델을 -

//Loading Parts of speech-maxent model 
InputStream inputStream = new FileInputStream("C:/OpenNLP_models/en-pos-maxent.bin") ; 
POSModel model = new POSModel(inputStream) ; 

2 단계 : POSTaggerME 클래스를 인스턴스화

POSTaggerME 패키지의 클래스 opennlp.tools.postag 주어진 원시 텍스트의 연설의 일부를 예측하는 데 사용됩니다. 그것은 그것의 결정을 내릴 최대 엔트로피를 사용합니다.

아래에 도시 된 바와 같이,이 클래스의 인스턴스와 이전 단계에서 생성 된 모델 객체를 전달 -

//Instantiating POSTaggerME class 
POSTaggerME tagger = new POSTaggerME(model) ;

3 단계 : 문장을 토큰 화

tokenize() 의 방법 whitespaceTokenizer 클래스는 전달 된 변환 텍스트를 토큰 화하는데 사용된다. 이 방법은 파라미터로서 문자열 변수를 수용하고, 문자열 배열 반환 (tokens) .

이 instantiate whitespaceTokenizer 이 방법으로 문장의 문자열 형식을 전달하여 클래스와 호출이 방법을.

//Tokenizing the sentence using WhitespaceTokenizer class  
WhitespaceTokenizer whitespaceTokenizer= WhitespaceTokenizer.INSTANCE; 
String[] tokens = whitespaceTokenizer.tokenize(sentence) ; 

4 단계 : 태그를 생성

tag() 의 방법 whitespaceTokenizer 클래스는 토큰의 문장에 POS 태그를 지정합니다. 이 방법은 토큰의 배열 수용 (String) 파라미터 및 반환 태그와 (array) .

인보 tag() 그것을 이전 단계에서 생성 된 토큰을 전달하여 방법.

//Generating tags 
String[] tags = tagger.tag(tokens) ; 

5 단계 : 토큰 및 태그 인쇄

POSSample 클래스는 POS-태그 문장을 나타냅니다. 이 클래스를 인스턴스화하기 위해, 우리는 토큰의 배열을 필요로 (of the text) 와 태그의 배열을.

toString() 이 클래스의 메소드는 태그 문장을 반환합니다. 토큰 및 이전 단계에서 생성 된 태그 어레이를 전달하여,이 클래스의 인스턴스를 호출하여 그 toString() 는 다음 코드 블록에서와 같이, 방법.

//Instantiating the POSSample class 
POSSample sample = new POSSample(tokens, tags) ; 
System.out.println(sample.toString() );

Example

다음은 주어진 원시 텍스트에 품사 태그 프로그램입니다. 이름을 가진 파일이 프로그램을 저장 PosTaggerExample.java.

import java.io.FileInputStream; 
import java.io.InputStream;  

import opennlp.tools.postag.POSModel; 
import opennlp.tools.postag.POSSample; 
import opennlp.tools.postag.POSTaggerME; 
import opennlp.tools.tokenize.WhitespaceTokenizer;  

public class PosTaggerExample { 
  
   public static void main(String args[]) throws Exception{ 
    
      //Loading Parts of speech-maxent model       
      InputStream inputStream = new 
         FileInputStream("C:/OpenNLP_models/en-pos-maxent.bin") ; 
      POSModel model = new POSModel(inputStream) ; 
       
      //Instantiating POSTaggerME class 
      POSTaggerME tagger = new POSTaggerME(model) ; 
       
      String sentence = "Hi welcome to Tutorialspoint"; 
       
      //Tokenizing the sentence using WhitespaceTokenizer class  
      WhitespaceTokenizer whitespaceTokenizer= WhitespaceTokenizer.INSTANCE; 
      String[] tokens = whitespaceTokenizer.tokenize(sentence) ; 
       
      //Generating tags 
      String[] tags = tagger.tag(tokens) ;
      
      //Instantiating the POSSample class 
      POSSample sample = new POSSample(tokens, tags) ; 
      System.out.println(sample.toString() ); 
   
   } 
}       

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac PosTaggerExample.java 
java PosTaggerExample 

아래와 같이 실행에서, 상기 프로그램은, 소정의 텍스트를 판독하고이 문장의 품사를 검출하고,이를 표시한다.

Hi_NNP welcome_JJ to_TO Tutorialspoint_VB 

POS 술래 실적

다음은 주어진 원시 텍스트의 품사 태그 프로그램입니다. 또한 성능을 모니터링하고 술래의 성능을 표시합니다. 이름을 가진 파일이 프로그램을 저장 PosTagger_Performance.java .

import java.io.FileInputStream; 
import java.io.InputStream;  

import opennlp.tools.cmdline.PerformanceMonitor; 
import opennlp.tools.postag.POSModel; 
import opennlp.tools.postag.POSSample; 
import opennlp.tools.postag.POSTaggerME; 
import opennlp.tools.tokenize.WhitespaceTokenizer;  

public class PosTagger_Performance { 
   public static void main(String args[]) throws Exception{ 
      //Loading Parts of speech-maxent model       
      InputStream inputStream = new 
         FileInputStream("C:/OpenNLP_models/en-pos-maxent.bin") ; 
      POSModel model = new POSModel(inputStream) ; 
       
      //Creating an object of WhitespaceTokenizer class  
      WhitespaceTokenizer whitespaceTokenizer= WhitespaceTokenizer.INSTANCE; 
      
      //Tokenizing the sentence 
      String sentence = "Hi welcome to Tutorialspoint"; 
      String[] tokens = whitespaceTokenizer.tokenize(sentence) ; 
       
      //Instantiating POSTaggerME class 
      POSTaggerME tagger = new POSTaggerME(model) ; 
       
      //Generating tags 
      String[] tags = tagger.tag(tokens) ; 
       
      //Instantiating POSSample class       
      POSSample sample = new POSSample(tokens, tags) ; 
      System.out.println(sample.toString() ); 
       
      //Monitoring the performance of POS tagger 
      PerformanceMonitor perfMon = new PerformanceMonitor(System.err, "sent") ; 
      perfMon.start() ; 
      perfMon.incrementCounter() ; 
      perfMon.stopAndPrintFinalResult() ;      
   } 
}

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac PosTaggerExample.java 
java PosTaggerExample 

실행에, 위의 프로그램은 주어진 텍스트를 읽고 다음 문장의 품사 태그 및 표시합니다. 또한,도 POS 술래의 성능을 모니터하고 표시한다.

Hi_NNP welcome_JJ to_TO Tutorialspoint_VB  
Average: 0.0 sent/s  
Total: 1 sent 
Runtime: 0.0s 

POS 술래 확률

probs() 의 방법 POSTaggerME 클래스는 최근 태그 문장의 각 태그의 확률을 찾는 데 사용됩니다.

//Getting the probabilities of the recent calls to tokenizePos() method 
double[] probs = detector.getSentenceProbabilities() ; 

다음은 지난 태그 문장의 각 태그의 확률을 표시하는 프로그램입니다. 이름을 가진 파일이 프로그램을 저장 PosTaggerProbs.java .

import java.io.FileInputStream; 
import java.io.InputStream;  

import opennlp.tools.postag.POSModel; 
import opennlp.tools.postag.POSSample; 
import opennlp.tools.postag.POSTaggerME; 
import opennlp.tools.tokenize.WhitespaceTokenizer;  

public class PosTaggerProbs { 
   
   public static void main(String args[]) throws Exception{ 
      
      //Loading Parts of speech-maxent model       
      InputStream inputStream = new FileInputStream("C:/OpenNLP_mdl/en-pos-maxent.bin") ; 
      POSModel model = new POSModel(inputStream) ; 
       
      //Creating an object of WhitespaceTokenizer class  
      WhitespaceTokenizer whitespaceTokenizer= WhitespaceTokenizer.INSTANCE; 
       
      //Tokenizing the sentence 
      String sentence = "Hi welcome to Tutorialspoint"; 
      String[] tokens = whitespaceTokenizer.tokenize(sentence) ; 
       
      //Instantiating POSTaggerME class 
      POSTaggerME tagger = new POSTaggerME(model) ; 
             
      //Generating tags 
      String[] tags = tagger.tag(tokens) ;       
      
      //Instantiating the POSSample class 
      POSSample sample = new POSSample(tokens, tags) ;  
      System.out.println(sample.toString() );
      
      //Probabilities for each tag of the last tagged sentence. 
      double [] probs = tagger.probs() ;       
      System.out.println("  ") ;       
      
      //Printing the probabilities  
      for(int i = 0; i<probs.length; i++) 
         System.out.println(probs[i]) ; 
   } 
}      

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac TokenizerMEProbs.java 
java TokenizerMEProbs

실행에, 위의 프로그램은, 주어진 원시 텍스트를 읽고 그 안에 각 토큰의 품사 태그 및 표시합니다. 아래와 같이 또한, 또한, 주어진 문장에서 스피치의 각 부분에 대한 확률을 표시한다.

Hi_NNP welcome_JJ to_TO Tutorialspoint_VB    
0.6416834779738033 
0.42983612874819177 
0.8584513635863117 
0.4394784478206072 

OpenNLP 일 - 문장 구문 분석

OpenNLP API를 사용하면 주어진 문장을 구문 분석 할 수 있습니다. 이 장에서는 OpenNLP API를 사용하여 원시 텍스트를 구문 분석하는 방법을 설명합니다.


OpenNLP 라이브러리를 사용하여 원시 텍스트를 구문 분석

문장을 검색하려면, OpenNLP는 미리 정의 된 모델이라는 파일 사용 en-parserchunking.bin . 이것은 주어진 원시 텍스트를 구문 분석하는 훈련을하는 미리 정의 된 모델이다.

Parser 의 클래스 opennlp.tools.Parser 패키지는 구문 분석 성분을 보유하는 데 사용되며, ParserTool 의 클래스 opennlp.tools.cmdline.parser 패키지 내용을 구문 분석하는 데 사용됩니다.

다음은 사용해, 지정된 원시 텍스트 구문 분석하는 프로그램 작성 따라야하는 단계입니다 ParserTool 클래스.

1 단계 : 모델을로드

구문 분석 텍스트 모델의 이름은 클래스에 의해 표현된다 ParserModel 패키지에 속하는, opennlp.tools.parser .

토크 나이 모델을로드하려면 -

  • 만들기 InputStream 모델의 개체를 (Instantiate the FileInputStream and pass the path of the model in String format to its constructor) .

  • 이 instantiate ParserModel 클래스 및 전달 InputStream (object) 는 다음 코드 블록에 도시 된 바와 같이, 생성자 파라미터로서 모델을.

//Loading parser model 
InputStream inputStream = new FileInputStream(".../en-parserchunking.bin") ; 
ParserModel model = new ParserModel(inputStream) ;

2 단계 : 파서 ​​클래스의 객체를 생성

Parser 패키지의 클래스 opennlp.tools.parser 구문 분석 성분을 유지하기위한 데이터 구조를 나타냅니다. 당신은 정적 사용하여이 클래스의 객체 생성 할 수 있습니다 create() 의 방법 ParserFactory 클래스를.

인보 create() 의 방법 ParserFactory 아래와 같이 이전 단계에서 생성 된 모델 객체를 전달하여 -

//Creating a parser Parser parser = ParserFactory.create(model) ; 

3 단계 : 문장을 구문 분석

parseLine() 의 방법 ParserTool 클래스 OpenNLP에서 원시 텍스트를 해석하는데 사용된다. 이 방법은 받아 -

  • 텍스트를 나타내는 String 변수를 구문 분석합니다.

  • 파서 객체입니다.

  • 파싱의 수를 나타내는 정수를 실시하여야한다.

문장 다음과 같은 파라미터를 전달하여,이 메소드를 호출 : 이전 단계에서 생성 된 파싱 개체를 파싱 필요한 수를 나타내는 정수를 실시한다.

//Parsing the sentence 
String sentence = "Tutorialspoint is the largest tutorial library.";       
Parse topParses[] = ParserTool.parseLine(sentence, parser, 1) ;

Example

다음은 주어진 원시 텍스트를 구문 분석하는 프로그램입니다. 이름을 가진 파일이 프로그램을 저장 ParserExample.java .

import java.io.FileInputStream; 
import java.io.InputStream;  

import opennlp.tools.cmdline.parser.ParserTool; 
import opennlp.tools.parser.Parse; 
import opennlp.tools.parser.Parser; 
import opennlp.tools.parser.ParserFactory; 
import opennlp.tools.parser.ParserModel;  

public class ParserExample { 
   
   public static void main(String args[]) throws Exception{  
      //Loading parser model 
      InputStream inputStream = new FileInputStream(".../en-parserchunking.bin") ; 
      ParserModel model = new ParserModel(inputStream) ; 
       
      //Creating a parser 
      Parser parser = ParserFactory.create(model) ; 
      
      //Parsing the sentence 
      String sentence = "Tutorialspoint is the largest tutorial library.";
      Parse topParses[] = ParserTool.parseLine(sentence, parser, 1) ; 
    
      for (Parse p : topParses) 
         p.show() ;          
   } 
}      

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac ParserExample.java 
java ParserExample 

실행에서, 상기 프로그램은, 소정의 텍스트를 판독 원료를 구문 분석하고, 다음 출력을 표시 -

(TOP (S (NP (NN Tutorialspoint) ) (VP (VBZ is) (NP (DT the) (JJS largest) (NN
   tutorial) (NN library.) )))) 

OpenNLP - 청크 문장

문장 청킹 / 차단 워드 그룹과 동사의 그룹과 같은 단어의 부분으로 문장을 분할을 의미합니다.


OpenNLP를 사용하여 문장을 청크

문장을 검색하려면, OpenNLP는 모델이라는 파일 사용 en-chunker.bin . 이것은 주어진 원시 텍스트 덩어리로 문장을 훈련하는 미리 정의 된 모델이다.

opennlp.tools.chunker 패키지에는 명사구 덩어리로 비 재귀 구문 주석을 찾기 위해 사용되는 클래스 및 인터페이스가 포함되어 있습니다.

당신은 덩어리 메소드를 사용하여 문장 수있는 chunk() 의 ChunkerME 클래스를. 이 방법은 매개 변수로 문장의 토큰 및 POS 태그를 사용할 수 있습니다. 따라서, 청크의 프로세스를 시작하기 전에, 우선 당신은 문장을 토큰 화와 그것의 부품 POS 태그를 생성해야합니다.

OpenNLP 라이브러리를 사용하여 문장 덩어리하려면 다음을 수행해야합니다 -

  • 문장을 토큰 화.

  • 그것을 위해 POS 태그를 생성합니다.

  • 부하 en-chunker.bin 사용하여 모델 ChunkerModel 클래스

  • 이 instantiate ChunkerME 클래스를.

  • 청크 사용하여 문장 chunk() 이 클래스의 방법을.

다음 주어진 원시 텍스트에서 청크 문장에 프로그램을 작성하기 위해 따라야하는 단계입니다.

1 단계 : 문장을 토큰 화

문장은 USING 토큰 화 tokenize() 의 방법 whitespaceTokenizer 다음 코드 블록에 도시 된 바와 같이, 클래스.

//Tokenizing the sentence 
String sentence = "Hi welcome to Tutorialspoint";       
WhitespaceTokenizer whitespaceTokenizer= WhitespaceTokenizer.INSTANCE; 
String[] tokens = whitespaceTokenizer.tokenize(sentence) ;

2 단계 : POS 태그를 생성

사용하여 문장의 POS 태그 생성 tag() 의 방법 POSTaggerME 다음 코드 블록에서와 같이 클래스를.

//Generating the POS tags 
File file = new File("C:/OpenNLP_models/en-pos-maxent.bin") ;     
POSModel model = new POSModelLoader() .load(file);     
//Constructing the tagger 
POSTaggerME tagger = new POSTaggerME(model) ;        
//Generating tags from the tokens 
String[] tags = tagger.tag(tokens) ; 

3 단계 : 모델을로드

문장을 청크 모델의 이름은 클래스에 의해 표현된다 ChunkerModel 패키지에 속하는, opennlp.tools.chunker .

문장 탐지 모델을로드하려면 -

  • 만들기 InputStream 모델의 개체를 (Instantiate the FileInputStream and pass the path of the model in String format to its constructor) .

  • 이 instantiate ChunkerModel 클래스 및 전달 InputStream (object) 는 다음 코드 블록에 도시 된 바와 같이, 생성자 파라미터로서 모델을 -

//Loading the chunker model 
InputStream inputStream = new FileInputStream("C:/OpenNLP_models/en-chunker.bin") ; 
ChunkerModel chunkerModel = new ChunkerModel(inputStream) ;  

4 단계 : chunkerME 클래스를 인스턴스화

chunkerME 패키지의 클래스 opennlp.tools.chunker 문장 덩어리에 메서드가 포함되어 있습니다. 이것은 최대 엔트로피 기반 chunker입니다.

이 클래스의 인스턴스를 생성하고 이전 단계에서 만든 모델 객체를 전달합니다.

//Instantiate the ChunkerME class 
ChunkerME chunkerME = new ChunkerME(chunkerModel) ; 

5 단계 : 문장 청킹

chunk() 의 방법 ChunkerME 클래스는 전달 된 원시 텍스트 덩어리로 문장을 사용한다. 이 방법은 매개 변수로 토큰 및 태그를 나타내는 두 개의 문자열 배열을 받아들입니다.

파라미터로서 이전 단계에서 생성 된 토큰 어레이 및 태그 어레이를 통과시킴으로써이 방법을 호출한다.

//Generating the chunks 
String result[] = chunkerME.chunk(tokens, tags) ; 

Example

청크 프로그램 주어진 원시 텍스트의 문장입니다 다음. 이름을 가진 파일이 프로그램을 저장 ChunkerExample.java .

import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStream;  

import opennlp.tools.chunker.ChunkerME; 
import opennlp.tools.chunker.ChunkerModel; 
import opennlp.tools.cmdline.postag.POSModelLoader; 
import opennlp.tools.postag.POSModel; 
import opennlp.tools.postag.POSTaggerME; 
import opennlp.tools.tokenize.WhitespaceTokenizer;  

public class ChunkerExample{ 
   
   public static void main(String args[]) throws IOException { 
      //Tokenizing the sentence 
      String sentence = "Hi welcome to Tutorialspoint";       
      WhitespaceTokenizer whitespaceTokenizer= WhitespaceTokenizer.INSTANCE; 
      String[] tokens = whitespaceTokenizer.tokenize(sentence) ; 
     
      //Generating the POS tags 
      //Load the parts of speech model 
      File file = new File("C:/OpenNLP_models/en-pos-maxent.bin") ; 
      POSModel model = new POSModelLoader() .load(file);     
      
      //Constructing the tagger 
      POSTaggerME tagger = new POSTaggerME(model) ;        
      
      //Generating tags from the tokens 
      String[] tags = tagger.tag(tokens) ;    
    
      //Loading the chunker model 
      InputStream inputStream = new 
         FileInputStream("C:/OpenNLP_models/en-chunker.bin") ; 
      ChunkerModel chunkerModel = new ChunkerModel(inputStream) ;  
      
      //Instantiate the ChunkerME class 
      ChunkerME chunkerME = new ChunkerME(chunkerModel) ;
       
      //Generating the chunks 
      String result[] = chunkerME.chunk(tokens, tags) ; 
  
      for (String s : result) 
         System.out.println(s) ;         
   }    
}      

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac ChunkerExample.java 
java ChunkerExample 

실행에, 위의 프로그램은 주어진 문자열을 읽고 그 안에 문장을 덩어리 아래와 같이 표시합니다.

Loading POS Tagger model ... done (1.040s) 
B-NP 
I-NP 
B-VP 
I-VP

토큰의 위치를 ​​검출

우리는 또한 사용 청크의 위치 또는 스팬 검출 할 chunkAsSpans() 의 방법 ChunkerME 클래스. 이 방법은 유형 스팬의 객체의 배열을 반환합니다. 의 스팬라는 이름의 클래스 opennlp.tools.util 패키지는 저장하는 데 사용되는 start 과 end 집합의 정수를.

사용자는 리턴 의해 스팬 저장할 수 chunkAsSpans() 스판 배열 방법을 다음 코드 블록에서와 같이, 그들을 출력한다.

//Generating the tagged chunk spans 
Span[] span = chunkerME.chunkAsSpans(tokens, tags) ; 
       
for (Span s : span) 
   System.out.println(s.toString() ); 

Example

다음은 주어진 원시 텍스트의 문장을 감지 프로그램입니다. 이름을 가진 파일이 프로그램을 저장 ChunkerSpansEample.java .

import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStream;  

import opennlp.tools.chunker.ChunkerME; 
import opennlp.tools.chunker.ChunkerModel; 
import opennlp.tools.cmdline.postag.POSModelLoader; 
import opennlp.tools.postag.POSModel; 
import opennlp.tools.postag.POSTaggerME; 
import opennlp.tools.tokenize.WhitespaceTokenizer; 
import opennlp.tools.util.Span;  

public class ChunkerSpansEample{ 
   
   public static void main(String args[]) throws IOException { 
      //Load the parts of speech model 
      File file = new File("C:/OpenNLP_models/en-pos-maxent.bin") ;     
      POSModel model = new POSModelLoader() .load(file); 
       
      //Constructing the tagger 
      POSTaggerME tagger = new POSTaggerME(model) ; 
  
      //Tokenizing the sentence 
      String sentence = "Hi welcome to Tutorialspoint";       
      WhitespaceTokenizer whitespaceTokenizer= WhitespaceTokenizer.INSTANCE; 
      String[] tokens = whitespaceTokenizer.tokenize(sentence) ; 
       
      //Generating tags from the tokens 
      String[] tags = tagger.tag(tokens) ;       
   
      //Loading the chunker model 
      InputStream inputStream = new 
         FileInputStream("C:/OpenNLP_models/en-chunker.bin") ; 
      ChunkerModel chunkerModel = new ChunkerModel(inputStream) ;
      ChunkerME chunkerME = new ChunkerME(chunkerModel) ;       
           
      //Generating the tagged chunk spans 
      Span[] span = chunkerME.chunkAsSpans(tokens, tags) ; 
       
      for (Span s : span) 
         System.out.println(s.toString() );  
   }    
}

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac ChunkerSpansEample.java 
java ChunkerSpansEample

실행에서, 상기 프로그램은 상기 소정의 문자열과 청크의 지속 기간을 판독하고, 다음 출력을 표시 -

Loading POS Tagger model ... done (1.059s) 
[0..2) NP 
[2..4) VP 

Chunker 확률 감지

probs() 의 방법 ChunkerME 클래스의 마지막 복호화 순서의 확률을 돌려 준다.

//Getting the probabilities of the last decoded sequence       
double[] probs = chunkerME.probs() ; 

다음은에 의해 마지막 디코딩 시퀀스의 확률을 인쇄 할 수있는 프로그램입니다 chunker . 이름을 가진 파일이 프로그램을 저장 ChunkerProbsExample.java .

import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import opennlp.tools.chunker.ChunkerME; 
import opennlp.tools.chunker.ChunkerModel; 
import opennlp.tools.cmdline.postag.POSModelLoader; 
import opennlp.tools.postag.POSModel;
import opennlp.tools.postag.POSTaggerME; 
import opennlp.tools.tokenize.WhitespaceTokenizer;  

public class ChunkerProbsExample{ 
   
   public static void main(String args[]) throws IOException { 
      //Load the parts of speech model 
      File file = new File("C:/OpenNLP_models/en-pos-maxent.bin") ;     
      POSModel model = new POSModelLoader() .load(file); 
       
      //Constructing the tagger 
      POSTaggerME tagger = new POSTaggerME(model) ; 
  
      //Tokenizing the sentence 
      String sentence = "Hi welcome to Tutorialspoint";       
      WhitespaceTokenizer whitespaceTokenizer= WhitespaceTokenizer.INSTANCE; 
      String[] tokens = whitespaceTokenizer.tokenize(sentence) ; 
       
      //Generating tags from the tokens 
      String[] tags = tagger.tag(tokens) ;       
   
      //Loading the chunker model 
      InputStream inputStream = new 
         FileInputStream("C:/OpenNLP_models/en-chunker.bin") ; 
      ChunkerModel cModel = new ChunkerModel(inputStream) ; 
      ChunkerME chunkerME = new ChunkerME(cModel) ; 
       
      //Generating the chunk tags 
      chunkerME.chunk(tokens, tags) ; 
       
      //Getting the probabilities of the last decoded sequence       
      double[] probs = chunkerME.probs() ; 
      for(int i = 0; i<probs.length; i++) 
         System.out.println(probs[i]) ;       
   }    
}   

컴파일하고 다음 명령을 사용하여 명령 프롬프트에서 저장 한 자바 파일을 실행 -

javac ChunkerProbsExample.java 
java ChunkerProbsExample 

실행에서, 전술 한 프로그램을 청크 지정된 문자열을 판독하고, 마지막 디코딩 된 시퀀스의 확률을 출력한다.

0.9592746040797778 
0.6883933131241501 
0.8830563473996004 
0.8951150529746051 

OpenNLP - 명령 행 인터페이스

OpenNLP는 명령 줄 인터페이스 제공 (CLI) 명령 줄을 통해 다른 작업을 수행 할 수 있습니다. 이 장에서, 우리는 우리가 OpenNLP 명령 줄 인터페이스를 사용하는 방법을 보여주기 위해 몇 가지 예를 취할 것입니다.


토큰 화

input.txt를

Hi. How are you? Welcome to Tutorialspoint. We provide free tutorials on various technologies

통사론

 > opennlp TokenizerME path_for_models../en-token.bin <inputfile..> outputfile.. 

명령

C:\> opennlp TokenizerME C:\OpenNLP_models/en-token.bin <input.txt >output.txt

산출

Loading Tokenizer model ... done (0.207s)  
Average: 214.3 sent/s 
Total: 3 sent 
Runtime: 0.014s

경우 output.txt

Hi . How are you ? Welcome to Tutorialspoint . We provide free tutorials on various technologies

문장 감지

input.txt를

Hi. How are you? Welcome to Tutorialspoint. We provide free tutorials on various technologies

통사론

 > opennlp SentenceDetector path_for_models../en-token.bin <inputfile..> outputfile.. 

명령

C:\> opennlp SentenceDetector C:\OpenNLP_models/en-sent.bin <input.txt > output_sendet.txt 

산출

Loading Sentence Detector model ... done (0.067s)  

Average: 750.0 sent/s 
Total: 3 sent 
Runtime: 0.004s

Output_sendet.txt

Hi. How are you? 
Welcome to Tutorialspoint. 
We provide free tutorials on various technologies 

엔티티 인식 명명

input.txt를

<START:person> <START:person> Mike <END> <END> is senior programming manager and 
<START:person> Rama <END> is a clerk both are working at Tutorialspoint 

통사론

 > opennlp TokenNameFinder path_for_models../en-token.bin <inputfile.. 

명령

C:\>opennlp TokenNameFinder C:\OpenNLP_models\en-ner-person.bin <input_namefinder.txt

산출

Loading Token Name Finder model ... done (0.730s) 
<START:person> <START:person> Mike <END> <END> is senior programming manager and 
<START:person> Rama <END> is a clerk both are working at Tutorialspoint  
Average: 55.6 sent/s 
Total: 1 sent 
Runtime: 0.018s

음성 태그의 일부

input.txt를

Hi. How are you? Welcome to Tutorialspoint. We provide free tutorials on various technologies 

통사론

 > opennlp POSTagger path_for_models../en-token.bin <inputfile.. 

명령

C:\>opennlp POSTagger C:\OpenNLP_models/en-pos-maxent.bin < input.txt 

산출

Loading POS Tagger model ... done (1.315s) 
Hi._NNP How_WRB are_VBP you?_JJ Welcome_NNP to_TO Tutorialspoint._NNP We_PRP 
provide_VBP free_JJ tutorials_NNS on_IN various_JJ technologies_NNS  

Average: 66.7 sent/s 
Total: 1 sent 
Runtime: 0.015s 

 

[출처] http://www.w3ii.com/ko/opennlp/opennlp_quick_guide.html

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
1195 [ 一日30分 인생승리의 학습법] VBA Web Scraping: How Can VBA Be Used To Scrape Website Data? file 졸리운_곰 2024.04.13 3
1194 [ 一日30分 인생승리의 학습법] 윈도우 실행파일 구조(PE파일) file 졸리운_곰 2024.03.31 3
1193 [ 一日30分 인생승리의 학습법] [Analysis] PE(Portable Executable) 파일 포맷 공부 file 졸리운_곰 2024.03.31 3
1192 [ 一日30分 인생승리의 학습법] 성공하는 메타버스의 3가지 조건 file 졸리운_곰 2024.03.30 7
1191 [ 一日30分 인생승리의 학습법] REST, REST API, RESTful 과 HATEOAS file 졸리운_곰 2024.03.10 9
1190 [ 一日30分 인생승리의 학습법] 렌더링 삼형제 CSR, SSR, SSG 이해하기 file 졸리운_곰 2024.03.10 2
1189 [ 一日30分 인생승리의 학습법] 엑셀 VBA에서 셀레니움 사용을 위한 Selenium Basic 설치 file 졸리운_곰 2024.02.23 11
1188 [ 一日30分 인생승리의 학습법]500 Lines or Less Blockcode: A Visual Programming Toolkit : 500줄 이하의 블록코드: 시각적 프로그래밍 툴킷 졸리운_곰 2024.02.12 4
1187 [ 一日30分 인생승리의 학습법] 구글 클라이언트(앱) 아이디를 발급받으려면 어떻게 해야 하나요? 졸리운_곰 2024.01.28 3
1186 [ 一日30分 인생승리의 학습법] 빅뱅 프로젝트를 성공적으로 오픈하기 위한 팁 졸리운_곰 2023.12.27 16
1185 [ 一日30分 인생승리의 학습법]“빅뱅 전환보다 단계적 전환 방식이 이상적 애자일팀과 협업 쉽게 체질 개선을” file 졸리운_곰 2023.12.27 12
1184 [ 一日30分 인생승리의 학습법] Big-bang / phased 접근 file 졸리운_곰 2023.12.27 3
1183 [ 一日30分 인생승리의 학습법] CodeDragon 메뉴 데이터 전환의 개념 이해 - 데이터 전환의 개념, 데이터 전환방식, 데이터 전환방식 및 장단점 비교, 데이터전환 이후 검토해야 할 사항 졸리운_곰 2023.12.27 5
1182 [ 一日30分 인생승리의 학습법] 블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 분쟁 해결 시스템 file 졸리운_곰 2023.12.27 6
1181 [ 一日30分 인생승리의 학습법] 블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 개념과 리뷰 시스템 file 졸리운_곰 2023.12.27 4
1180 [ 一日30分 인생승리의 학습법] 소켓 CLOSE_WAIT 발생 현상 및 처리 방안 file 졸리운_곰 2023.12.03 7
1179 [ 一日30分 인생승리의 학습법] robots 설정하기 졸리운_곰 2023.12.03 3
1178 [ 一日30分 인생승리의 학습법] A Tutorial and Elementary Trajectory Model for the Differential Steering System of Robot Wheel Actuators : 로봇 휠 액츄에이터의 차동 조향 시스템에 대한 튜토리얼 및 기본 궤적 모델 file 졸리운_곰 2023.11.29 6
1177 [ 一日30分 인생승리의 학습법] Streamline Your MLOps Journey with CodeProject.AI Server : CodeProject.AI 서버로 MLOps 여정을 간소화하세요 file 졸리운_곰 2023.11.25 2
1176 [ 一日30分 인생승리의 학습법] Comparing Self-Hosted AI Servers: A Guide for Developers / : 자체 호스팅 AI 서버 비교: 개발자를 위한 가이드 file 졸리운_곰 2023.11.25 10
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED