반응형

 

BoW: Bag of Words


BoW는 자연어 즉, 텍스트(text)를 처리하는 방법 중에 하나로 간단하고 이해하기 쉬운 방법중 하나입니다. 짧게 말하면 단어가방(Bag of Words)를 가지고 문장을 표현하는 방법 입니다.

 

왜, BoW가 필요한가?

컴퓨터는 0과 1밖에 모릅니다. 0 또는 1일 표시할 수 있는 이진수에서 1자리를 bit 비트라고 합니다. 그래서 1비트는 1자리 2비트는 2자리입니다. 8비트를 1바이트(byte)라고 하고 1,000바이트를 1KB(킬로바이트)라고 합니다. 1,000 KB를 1MB(메가바이트), 1,000 MB를 1GB(기가바이트) 라고합니다. 이처럼 컴퓨터에서 정보를 처리하는 단위는 비트 입니다. 그런데 NLP에서 다루고자 하는 것은 텍스트(text) 데이터 입니다. 물론 텍스트 데이터도 컴퓨터에서는 비트로 저장되고 처리되지만 언어적인 특성을 고려한 상태에서의 저장이 아니라 문자 자체로의 저장입니다. 예를 들면 비트로 저장시에는 주어, 동사, 목적어, 보어 등 문법적인 언어적인 내용을 저장하지 않습니다. 단지, 예를 들면 'ㄱ'은 '11100011 10000100 10110001' 로 저장합니다. 뒤에 'ㅏ' (11100011 10000101 10001111) 와 합쳐서 '가'를 저장하고 표현할 뿐입니다. 이처럼 기본적인 컴퓨터에서 문자의 표현을 위한 데이터가 아니라 자연어 정보의 표현을 위한 데이터가 필요합니다. 그래야 이것을 이용해서 모델에서 사용할 수 있습니다. 이처럼 자연어를 모델이 다룰 수 있는 형태로 표현하는 방법중하나가 BoW 입니다. 예를 들어보겠습니다. 다음과 같은 문장이 있습니다. " 나는 사과를 좋아합니다." 이 문장을 어떻게 표현 할 수 있을까요? 여러가지 방법이 있지만 BoW로 표현할 수 있습니다.

 

BoW는 무엇인가?

BoW는 텍스트를 표현하는 방법 중 하나로 단어 가방(Bag of Words)을 이용하여 문장 또는 문서를 표현하는 방법입니다. 단어 가방에는 단어들이 들어있고 문장은 어떤 단어가 몇번 사용되었는지를 가지고 표현하는 방법입니다.

 

BoW 예시

여러분은 오늘 막 입학한 유치원생 이라고 생각해 봅시다. 유치원 단어 놀이 시간이 돌아왔다고 가정해 보시지요. 단어 놀이는 단어 가방에서 단어가 적힌 카드들을 넣어 두었다가 꺼네서 문장을 만드는 놀이입니다. 단어 가방 안에 '나는', '사과를', '좋아합니다', '바나나를', '정말'이라는 단어가 각각 쓰여진 총 5개의 단어 카드가 들어 있습니다.

이 단어 가방에서 "나는 사과를 좋아합니다"라는 문장을 만들기 위해서는 어떤 카드를 몇개 뽑아야 할까요? 네, '나는', '사과를', '좋아합니다' 각각 1개씩 있으면 됩니다. 이것을 기호로 표시해보면 다음과 같습니다. {'나는': 1, '사과를': 1, '좋아합니다': 1} 한번 더 해보시지요. 이번에는 "나는 정말 정말 바나나를 좋아합니다"를 만들어 보겠습니다. 결과는 순서와 상관없이 다음과 같이 표현할 수 있습니다. {'나는': 1, '정말': 2, '바나나를': 1, '좋아합니다': 1}
단어 가방는 단어가 중복되어 들어있지 않습니다. 그래서 각 단어에 순번을 할당하면 순번만으로도 어떤 단어인지를 알수 있습니다. 즉, 1번 카드에는 '나는'이 적혀있고, 2번카드에는 '사과를'이라고 적혀있다고 생각할 수 있습니다. 그러면 단어 가방에는 다음과 같이 들어있다고 할 수 있습니다. {0: '나는', 1: '정말', 2: '바나나를', 3: '좋아합니다', 4: '사과를'}
이러한 단어 가방을 이용하여 "나는 사과를 좋아합니다" 문장을 하나의 표현하면 [1, 0, 0, 1, 1] 으로 표현할 수 있습니다. 왜냐하면 첫번째 자리는 '나는'이고 문장내에 '나는'이 한번 있으므로 1로 표시됩니다. 두번째 자리는 '정말'을 의미하는데 문장에 해당 단어가 없으므로 0으로 표시합니다. 세번째 자리는 '바나나를'의미하는데 표현하려는 문장에 '바나나를'이 없으므로 0입니다. 네번째 자리는 '좋아합니다'의 자리인데 문장중에 있으므로 1로 표시됩니다. 마지막 다섯번째 자리는 '사과를'을 의미하고 문장에 '사과를'이 있으므로 1로 표시합니다. 같은 방법으로 두번째 예시 문장인 "나는 정말 정말 바나나를 좋아합니다."를 BoW로 표현하면 [1, 2, 1, 1, 0]이 됩니다.
이처럼 단어 가방을 이용하여 문장을 표시하는 방법이 Bag of Words(BoW) 방법입니다. 예시의 간단한 설명을 위해서 문장을 그대로 이용했는데 자세한 분석을 위해서 형태소 분석을 통해 단어를 분리하여 단어 가방에 넣을 수 있습니다.(예: 나, 는, 바나나, 를, 좋아, 합니다.)

 

 

장점 및 단점

위의 예에서 보신 것처럼 BoW는 문장내에서 단어의 순서나 위치를 고려하지 않습니다. 그냥 출현 횟수만을 관리합니다. 그래서 주어, 동사, 목적어 등 위치에 따른 의미 파악이 안되고 앞뒤 단어와의 관계를 고려한 분석이 안됩니다. 그래서 여러 뜻을 가진 단어나 동의어를 파악하거나 활용하지 못합니다. 그리고 새로운 단어의 표현을 위해서는 단어 가방에 단어를 추가하고 다른 문장들에도 표현을 변경해 주어야합니다. 그래서 잦은 단어추가가 필요한 곳에는 적합하지 않습니다.(물론 데이터 양이 적으면 사용가능하고요 이러한 단점을 보완하기 위해 Dummy word를 임의로 추가하거나 해싱 트릭 hashing trick을 이용할 수도 있지만 문제를 완전히 해결하지는 못합니다. ) 그대신 구조가 간단해서 처리 속도가 빠르고 이해하기 쉽습니다. 그래서 문제를 머신러닝으로 풀수 있는지 없는지를 빠르게 검증하고자 하는 단계에서 많이 사용되는 방법입니다.

 

Python 구현 코드

from konlpy.tag import Kkma

sentence = "나는 정말 정말 바나나를 좋아합니다."

def print_bow(sentence):
    kkma = Kkma()
    pos = kkma.pos(sentence)
    bow = {}
    for word in pos:
        try:
            bow[word[0]] += 1
        except KeyError:
            bow[word[0]] = 1

    print("BoW 표현: ", bow)
    print("단어 개수: ",len(bow))

print_bow(sentence)

output 실행 결과

BoW 표현:  {'나': 1, '는': 1, '정말': 2, '바나나': 1, '를': 1, '좋아하': 1, 'ㅂ니다': 1, '.': 1}
단어 개수:  8

 

 

유사하지만 조금 더 복잡하고 정교한 표현이 가능한 TF-IDF 도 많이 쓰입니다.

https://bigdatamaster.tistory.com/147

 

TF-IDF tfidf

주요 내용 개요 TF-IDF 계산 해보기 TF-IDF의 장점 및 단점 1. 개요 TF-IDF 는 BoW(Bag of Words)와 마찬가지로 텍스트 데이터를 (컴퓨터에서 사용하기 위해) 표현하는 방법중 한가지 방법 입니다. 정보 검색

bigdatamaster.tistory.com

 

 

Bag of Words 를 이용한 어플리케이션이라고 할 수 있는 워드클라우드에 대해서는 아래의 링크를 참고해주세요.

https://bigdatamaster.tistory.com/99

 

[연재] 고객분석 2 - 워드 클라우드를 이용한 고객 성향 분석 및 판단

어떻게 하면 고객의 성향을 알수 있을까? 가장 확실한 방법은 MBTI 테스트를 고객 별로 실행하고 결과를 확인하는 것이다. 이보다 확실 할 수는 없다. 그러나 실제 고객 분석 시 실현 가능성이 매

bigdatamaster.tistory.com

 

반응형
반응형

What is NLP?

스타워즈, 2001 스페이스 오디세이 등 공상 과학(Science Fiction/Sci-Fi/SF) 영화를 보면 주인공이 사랑하는 연인이나 많은 사람을 구하기 위해 많은 기계나 로봇의 도움을 받아 역경을 해치고 목표를 이루어내는 것을 쉽게 볼 수 있습니다. 스타워즈에서의 R2D2, C2PO가, 스페이스 오디세이에서는 HAL 9000이 주인공을 돕는 로봇이나 기계 역할을 했습니다.
 
(스포일 HAL9000은 도와준건지 방해한건지…ㅋ. ) 스타워즈는 말할 것도 없이 대작이지만 2001 스페이스 오디세이도 정말 훌륭한 영화입니다. 1968년도에 2001년을 상상하며 만든 영화 같은데 정말 대단한 상상력인 것 같습니다. 영화에서 나오는 일부 제품이나 서비스는 이미 우리가 실생활에 사용하고 있는 것들도 있어서 정말 놀랐습니다. 어떤 것인지 찾으면서 영화를 보는 것도 재미있을 것 같네요.
 
제가 이야기 하고 싶은 부분은 주인공이 기계나 로봇과 소통하기 위해 언어를 이용한다는 점입니다. 뭐 놀랍지도 않은 일이지요. 이미 아마존 알랙사(Amazon Alexa), 구글 홈(Google Home), SK텔레콤 누구(SKT Nugu), KT 기가지니(KT GigaGinie), 네이버 클로바(Naver Clova), 카카오 프랜즈(Kakao Friends) 등 여러 종류의 인공지능 스마트 스피커가 판매되고 있지요, 그리고 휴대폰에서는 Apple Seri, Samsung Bixby 등 음성인식을 통해 다양한 서비스가 가능합니다. 이처럼 사람과 로봇 또는 기계의 소통을 위해 사용되는 언어 관련 기술을 자연어 처리(NLP: Natural Language Processing) 라고 합니다.
 
NLP는 인공지능의 한 분야입니다. 그럼 자연어 처리(NLP) 기술에는 어떤 것들이 있을까요? 언어는 말(소리)와 글(문자)로 표현되고 사용될 수 있을 것 같습니다. 보통 친구끼리 말로 소통하는 경우를 생각해보면 한 친구가 말하는 소리를 다른 친구가 1) 듣고 2) 이해한 다음에 3) 적절한 대답을 생각해 내고 그 내용을 4) 말로 하게 되겠지요. 물론 사람은 이러한 과정이 엄청나게 빠른 속도로 이루어집니다.  친구끼리 편지를 보냈다면 어떨까요? 다른 친구가 보낸 편지를 보고 한 단어씩(또는 문구나 문장을) 읽으면서 내용을 이해하고 (중간에도 가능하지만 보통) 마지막까지 다 읽은 다음 적절한 회신 내용을 생각해내고 그 내용을 글로 적어서 다시 편지로 보내겠지요.
 
기계나 로봇이 사람과 같이 언어로 소통하기 위해서는 사람이 소통하는 방법과 유사한 과정이 필요하겠습니다. 적어도 입력(듣고, 읽고), 처리(생각하고), 출력(말하고, 쓰고)이 필요합니다. 위에서 말씀 드린 것처럼 언어를 소리와 문자로 표현할 수 있는데 컴퓨터가 언어를 다룰 때는 문자로 표현하는 방법을 주로 다룹니다. 그 이유는 문자로 다루는 것이 더 경우의 수가 작고(같은 단어도 소리로 표현하려면 무수히 많은 표현이 가능할태니까요) 더 의미가 명확해 진다고할 수 있겠습니다.(물론 말로했을 때 뉘앙스에 따라 의미가 달라지는 것처럼 아닌 경우도 일부 있습니다. 그러나 대부분은 문자가 더 동일한 의미로 사용됩니다.) 말은 문자와 서로 변환 될 수 있으므로 입력에서는 소리를 문자로 바꾸어주고 출력에서는 문자를 소리로 바꾸어 주면 되겠습니다.
 
이런 절차적인 내용을 정리하면 1)소리를 듣고 문자로 바꾼뒤 2) 문자가 의미하는 내용을 이해하고 3) 내용에 적합한 대답을 생각해 내고 4) 생각한 대답을 문자로 만든다음 5)문자를 소리로 바꾸어 주면 되겠습니다. 이러한 내용을 정리하면 아래와 같은 절차와 기술들이 필요합니다.
 
1)소리를 듣고 문자로 전환(음성인식-Speech Recognition or STT: Speech To Text)
2) 문자가 의미하는 내용을 이해(NLU: Natural Language Understanding)
3) 내용에 적합한 대답을 생각(Knowledge DB, Search)
4) 생각한 대답을 문자로 전환(NLG: Natural Language Generation)
5)문자를 소리로 전환(음성합성-Speech Synthesis or TTS: Text To Speech)
 
1)번과 5)번은 음성음향신호처리 분야에 해당하고 다른 부분은 대화(Dialog) 어플리케이션과 관련된 NLP 분야라고 하겠습니다.
 
 

배경과 현황

NLP는 다른 말로 전산언어학이라고 할 수 있습니다. 전산언어학의 시작은 1950년대에 활발하게 연구되었던 기계번역이라고 할 수 있겠습니다. 모든(?대부분의?) 기술과 발전이 전쟁 또는 돈을 벌기위한 목적으로 발전하는데 전산언어학의 발전은 냉전시대에 미국에서 구 소련의 문자정보를 자동으로 번역하고자하는 목적에서 시작되었습니다. 이를 위해 많은 투자가 미국 정부를 주도로 일어나면서 활발한 연구가 이루어졌습니다. 이를 위해서 초기에 언어학 중 형태론과 문법을 기반으로 통계기법을 이용하여 자동번역을 구현하고자 하는 많은 연구가 있었습니다. 그러나 여러가지 이유로(아마도 컴퓨팅 파워, 데이터 부족, 알고리즘의 미성숙 등으로) 혁신적인 서비스나 역사적 이벤트를 만들지는 못했지만, 이러한 연구들이 바탕이 되어 최근 인공지능 딥러닝 기술과 접목되면서 (이번에는 돈을 벌기위한 목적으로) 많은 연구가 이루어지고 혁신적인 서비스들이 만들어 지고 있습니다.)
 
 

어디에 쓸까?

실제 NLP 활용분야는 매우 넓습니다. 왜냐하면 말그대로 자연어를 처리하는 활용분야는 더 많이 있기 때문입니다. 예를 들면 이미 많은 언어로 만들어진 수많은 데이터 들이 인터넷에 있습니다. 이러한 언어 데이터에서 의미를 찾아내고 분석하고 활용하는데 사용되는 것도 자연어를 처리하는 NLP의 분야입니다.
이러한 NLP기술의 주요 활용 분야에는 위에서 예를 든 대화(Dialog) 뿐만 아니라, 질의 응답(QA: Question Answering), 정보추출(IE: Information Extraction), 감성분석(Sentiment Analysis),  번역(Translation), 요약(Summarization) 등이 있습니다. 최근에는 컴퓨터 비전 분야와 결합하여 사진/영상의 내용을 설명/요약 한다든가, 특정 대사/감정이 전달되는 부분의 영상을 찾는 등 다양한 분야로 확대 되고 있습니다. 하드웨어와 인공지능 알고리즘의 발달로 NLP관련 서비스의 품질이 좋아지고 이에 따라 활용 사례가 늘어가면서 많은 어플리케이션이 만들어지고 있습니다. 인공지능 분야에서도 결국 인간과의 소통을 위한 방법으로 NLP의 중요성이 더욱 높아 지고 있습니다.

 

 

아래는 참고 소스 정보 입니다.

참고로 추가한 위키피디아의 정의를 참고하세요.

자연어 처리(自然語處理) 또는 자연 언어 처리(自然言語處理)는 인간의 언어 현상을 컴퓨터와 같은 기계를 이용해서 묘사할 수 있도록 연구하고 이를 구현하는 인공지능의 주요 분야 중 하나다. 자연 언어 처리는 연구 대상이 언어 이기 때문에 당연하게도 언어 자체를 연구하는 언어학과 언어 현상의 내적 기재를 탐구하는 언어 인지 과학과 연관이 깊다. 구현을 위해 수학적 통계적 도구를 많이 활용하며 특히 기계학습 도구를 많이 사용하는 대표적인 분야이다. 정보검색, QA 시스템, 문서 자동 분류, 신문기사 클러스터링, 대화형 Agent 등 다양한 응용이 이루어지고 있다.

https://ko.wikipedia.org/wiki/%EC%9E%90%EC%97%B0%EC%96%B4_%EC%B2%98%EB%A6%AC

 

자연어 처리 - 위키백과, 우리 모두의 백과사전

자연어 처리(自然語處理) 또는 자연 언어 처리(自然言語處理)는 인간의 언어 현상을 컴퓨터와 같은 기계를 이용해서 묘사할 수 있도록 연구하고 이를 구현하는 인공지능의 주요 분야 중 하나다.

ko.wikipedia.org

 

https://ko.wikipedia.org/wiki/%EC%A0%84%EC%82%B0%EC%96%B8%EC%96%B4%ED%95%99

 

전산언어학 - 위키백과, 우리 모두의 백과사전

이 문서는 컴퓨터를 이용해 자연어를 분석하는 학문에 관한 것입니다. 컴퓨터 프로그래밍에 사용되는 언어에 대해서는 프로그래밍 언어 문서를 참고하십시오. 전산언어학(電算言語學, 영어: com

ko.wikipedia.org

 

 
 
 
 

 

반응형

'인공지능-기계학습 > 언어인지_NLP' 카테고리의 다른 글

원 핫 인코딩? One-Hot Encoding?  (0) 2022.04.24
Tokenization이란? 토큰화? 토크나이제이션?  (0) 2022.04.16
TF-IDF tfidf  (0) 2022.03.17
BoW : Bag of Words  (0) 2022.03.15
최고의 챗봇 플랫폼 2021  (0) 2021.11.18
반응형

본 내용은 아래의 링크 내용을 번역한 내용 임을 밝힘니다.
The Best Open Source Chatbot Platforms in 2021

최고의 오픈소스 챗봇을 찾고 계신가요? 이글에서 그들이 정한 기능을 가지고 Top8개의 챗봇을 찾을 수 있습니다. 들어가 보시지요.

오픈소스는 인터넷 없이는 불가능한 초월적인 단계들 중에 하나이다. 이것은 "Nyan Cat은 문화적 혁명이다" 라는 문구와 비슷하다.
(Nyan Cat : 미국에서 만들어진 캐릭터 관련 밈. 몸통이 팝 타르트로 되어있는 회색 고양이가 우주에서 무지개를 그리며 날아다니는 GIF 이미지다.) 엄청인기 있었던 것 같음)
오픈소스 소프트웨어는 오랫동안 우리에게 정말 보석과 같은 것을 주어왔습니다.
모질라의 파이어폭스, 리눅스의 워드프레스, VLC, Apache, LaTex 그리고 우분투(Ubuntu), 이런 것들은 그저 눈에 띄는 몇개 중에 하나입니다.

처음에 언급한 것처럼 챗봇은 최근에 가장 우세한 기술 혁명중 하나입니다.
그리고 당연히 챗봇은 오픈소스 프레임웍의 영향을 받아왔습니다.
솔루션 제공자는 마이크로소프트와 같은 거대 기업으로부터 깃허브의 영웅인 개인 개발자까지 다양합니다.

그래서 이번 글에서는
A. 오픈소스 챗봇은 무엇인가
B. 2021년에 최고의 오픈소스 챗봇에는 어떤것이 있는가
C. 시장에서 오픈소스가 아닌 것들과의 차이를 만드는 것은 무엇인가
에 대해서 이야기 하겠습니다.

오픈소스 챗봇은 무엇인가

챗봇은 "특히 인터넷을 통해, 사람과 대화하는 것을 흉내내기 위해 설계된 프로그램"이 라고 정의 됩니다.
아마 당신은 살면서 당연하게도 이러한 많은 컴퓨터 프로그램들과 상호작용하고 보아왔을 것 입니다.
아마 당신은 챗봇을 이용해서 피자를 주문해봤을 수도 있고, 아니면 화장품을 사는 것에 도움을 받기위해 챗봇을 사용했을 수도 있습니다.
어쩌면 심지어 당신은 이러한 챗보중에 하나와 심리치료 시간을 가져왔을 수도 있습니다.(Stanford Woebot)
상상할 수 있는 거의 모든 사용 방법에 해당하는 챗봇이 있고, 대부분은 아래와 같이 둘중 하나의 방법으로 만들어졌습니다.
1. 최고 수준의 플랫폼을 사용하거나
2. 챗봇을 사용할 회사에 의해 독립적으로 만들어 졌습니다.
그래서 인도에서 가장큰 커머스 중에 하나인 Nykaa는 더 좋고, 보다 효율적인 방법으로 그들의 고객에게 서비스 하기 위해 고객 지원 챗봇을 사용합니다.
그럼에도 불구하고 세번째 방법이 있는데 이것이 바로 오픈소스 챗봇을 사용하는 것입니다.
오픈소스 챗봇은 현대의 웹 어플리케이션과 매우 유사합니다.
오픈소스 챗봇은 인터넷에서 이용되고, 데이터베이스와 메시지를 보내고 받기위한 API를 이용하고, 파일을 읽고 쓰고, 보통의 일들을 처리합니다.
오픈소스 봇들은 대게 아래와 같은 몇 개의 핵심 요소들로 구성됩니다.

  • 웹 서버, 대부분은 인터넷에서 사용가능한 웹서버
  • 봇을 개발하기위해 인터페이스를 제공하는 툴과 봇 빌더 SDK
  • 지능적인 알고리즘 서비스
  • 저장 서비스

 

2021년에 최고의 오픈소스 챗봇에는 어떤 것이 있는가

1. 마이크로소프트 봇 프레임웍(Microsoft Bot Framework).

아마도 비즈니스에서 가장 많이 사용되는 툴중에 하나인 마이크로소프트의 봇 프레임웍(MBF)은 당신이 필요한 모든 것을 가지고 있습니다.
사실, 마인드브라우저의 연구에 따르면 비즈니스의 41%이상이 MBF를 산업의 대안으로 선호합니다.
SMS, Skype, Slack, Email, Office 365, Twittter, Telegram 등은 MBF가 제공하는 여러 플랫폼중에 그저 일부입니다.
이 프레임웍은 두가지로 구성되는데, 즉, 봇 빌더 SDK루이스(LUIS)라고 불리우는 그들의 NLU시스템으로 구성됩니다.
볼빌더SDK는 .NET과 Node.js를 지원 합니다. 그리고 자동번역기능을 가지고 있는 루이스는 30개 이상의 언어를 지원합니다.
마이크로소프트의 넓은 리소스 지원 때문에 당신은 거의 모든 대화 유형을 자동화 할 수 있습니다.
당신은 루이스를 이용해서 자연어 이해를 이용할 수 있고, 보이스 봇인 코타나(Cortana), 그리고 검색 API인 Bing을 이용할 수 있습니다.
MBF는 이러한 이유로 인기 많은 툴입니다. 개발자들이 더 빠르고, 더 좋은 봇을 만들수있게 도와주는 탬플릿과 예시를 가지고 있습니다.
이것은 또한 비즈니스가 옵니 채널적인 접근을 취하려할 때 이상적 입니다.

2. Rasa Stack

라사 스텍은 엄청난 성장을 보여준 플랫폼 입니다. 단 2년만에 라사가 30만회 이상 다운로드 됬습니다. 이것은 거의 매1분마다 다운로드 된 것 입니다.
라사 스택은 오픈소스 기계학습 툴의 모음입니다. 개발자들은 이러한 툴들을 이용햐서 챗봇과 어시스턴트를 만들 수 잇습니다.
라사 스택은 두가지의 콤포넌트를 가지고 있는데 이들 각각은 독립적입니다. 바로 'Core'와 'NLU' 입니다.
NLU는 사전에 정의된 의도에 기반하여 사용자의 메시지를 이해 합니다. 기계학습으로 만들어진 Core는 (이번 메시지 이후) 그 다음에 무엇이 일어날지를 결정합니다.
라사는 독립적인 서비스 입니다. 즉, 데이터를 주입하거나 받기 위한 제 3의 API를 사용할 필요가 없습니다. 그냥 온프레미스 서버나 프라이빗 클라우드에 배포할 수 있습니다.
이것은 확장할 수 있는 자연어 대화와 유연하게 제공할 수 있게 제품화가 준비된 유일한 플랫폼 입니다.

3. Botpress

봇프레스는 스스로를 오픈소스 봇빌딩 플랫폼에 있어는 '챗봇의 워드프레스'라면서 판매 합니다. 이것은 모듈화된 청사진을 가지고 개발 합니다. 당신은 조각들을 떼어내가나 코드 프레임에 있는 새로운 조각을 붙일 수 있습니다.
봇프레스는 3단계 설치 절차를 운영합니다. 개발자가 봇 빌딩을 시작하고, 선호하는 플랫폼에 그 봇을 배포하고 그리고 접근을 넘겨주고나면 이것은 관리 될 수 있습니다.
개발자 친화적인 환경을 사용하는 볼 프레스는 직관적인 대시보드를 가지고 있고, 유연한 기술에 의해 구동됩니다. 그리고 이것은 몇 개의 미리 설치된 컴포넌트들이 제공됩니다.

  • NLU 엔진
  • 관리자 대시보드
  • 시각적 흐름 작성도구
  • 대화 에뮬레이터 / 디버거
  • 여러 메세징 채널 지원

라사와 마찬가지로 봇프레스는 온프레미스에서 운영되기 때문에 들어오고 나가는 데이터에 대한 모든 제어를 할 수 있습니다.

4. Ana.Chat

Ana 는 세상에서 최초의 오픈 소스 챗봇인 것에 대해 스스로 자부심을 느낍니다.
Ana는 개인적이거나 상업적인 용도로도 무료이기 때문에 당신의 챗봇 개발 기간을 줄일 수 있습니다.
Ana는 Ana Studio, Server, Simulator, 그리고 SDK와 같은 내장된 서비스들이 묶음으로 제공됩니다.
이 Studio를 이용해서 텍스트를 만들고 수정하고, 시각적인 입력 항목과 버튼을 만들 수 있습니다.
시뮬레이터를 이용하면 화폐 표시와 같은 기능을 가지고 봇 사용 경험을 제어할 수 있습니다.
서버로는 확장에 대한 걱정없이 당신의 챗봇을 플랫폼에 배포할 수 있도록 합니다.
그리고 SDK로는 몇분 안에 당신의 엡을 Ana와 통합 할 수 있게 합니다.

5. OpenDialog

OpenDialog는 오픈소스 챗봇 프레임웤 중에서 가장 인기있는 것중에 하나입니다. 설비가 완비된 툴킷은 큰 노력없이 설계, 개발 그리고 배포를 할 수 있게 합니다.
GreenShoop Labs는 2018년에 개발을 쉽게 만드는 사용자 중심의 화면을 새롭게 만들면서 이 프레임웤을 만들었습니다. 이것은 훌륭한 대화 엔진과 처음 사용하는 사용자를 주눅들게 만들지 않는 대화 형태에서의 유연성을 하나로 합쳤습니다.
OpenDialog 실시간 음성-문자 변환 처리를 실행 할 수 있는 능력을 자랑합니다. 이것은 N-best/word graph 결과물을 제공하는 것 뿐만 아니라 하나의 서버 유닛으로 작동할 수 있습니다.
이 프레임웍의 USP는 당신이 어떠한 코딩 경험도 필요 없이 완전히 발달된 대화 에이전트를 만들 수 있게 합니다.

6. Tock

NLP를 근본적으로 지원하는 오픈소스 챗봇 개발 프레임웤을 원한다면 Tock은 또 다른 최고의 선택입니다. 이것은 3rd party APIs가 필요없고 독립적으로 동작할 수 있습니다. 그럼에도 불구하고, 사용자가 어떤 컴포넌트를 대화 에이전트에 집어 넣어야 하는지 고르는 것이 얼마나 쉬운지를 고려해보면 통합은 문제될 것이 없습니다.

7. DeepPavlov

DeepPavlov는 TensorFlow, Keras, 그리고 PyTorch 를 기반으로하는 인기있는 오픈소스 챗봇 개발 프레임웍이다 이러한 기반 프레임웍은 개발자들이 다기능 어시스턴트와 같이 파워플한 대화 에이전트를 개발하기 위해 필요한 유연한 도구를 제공합니다.
이 프레임웤은 NER, Q&A 그리고 다른 복잡한 NLP처리를 위해 사용되는 BERT 와 같은 최신의 딥러닝 모델과 호환됩니다.
DeepPavlov의 중요한 기능중 하나는 얼마나 쉽게 이것이 배포될 수 있는가 입니다.(쉽게 배포됩니다) 이러한 기능들은 Nvidia NGC와 Docker Hub에 있는 컨테이너에서 호스팅됩니다.

8. Wit.ai

개발자들은 개인용이거나 상업용 대화 에이전트를 만드는데 이 오픈소스 챗봇 개발 프레임웤을 사용할 수 있습니다.
이것은 페이스북이 2015년에 인수했습니다. Wit.ai 는 (특히 페이스북 메신저와 같은) 메세징 서비스와 쉽게 연동할 수 있는 오픈소스 챗봇을 만들기위해서 필요한 사용자 친화적인 SDK를 제공합니다.
Wit.ai의 NLP 엔진은 IBM, Microsoft, Amazon과 같은 경쟁사의 엔진을 능가합니다.

Wit.ai은 오늘날 가장 포괄적인 오픈 소스 챗봇 개발 프레임워크 중 하나임에 틀림없습니다. 이것의 SDK는 파이썬, NodeJS, 그리고 iOS와 같은 언어로 제공되기 때문에 넓은 범위의 개발자들에게 이상적입니다. Wit.ai는 웹사이트, 앱, 페이스북 메신저, 슬랙, 웨어러블 기술 및 자동화에 쉽게 연동 됩니다.
 

 

What are the key features of open-source chatbots?

오픈소스 챗봇의 주요 기능은 무엇인가?
오픈소스 챗봇 개발 프레임웤은 약간의 코딩 방법을 알고있는 누구나가 그들의 웹페이지를 위해서 그들이 직접 NLP기능이 있는 챗봇을 만들수 있게 합니다. 오픈소스 챗봇이 제공하는 주요 특징을 알아보겠습니다.. 이를 통해서 오픈소스챗봇을 즉시 적용할 수 있는지 아니지를 당신이 선택할 수 있습니다.

1. Customisability
오픈소스 챗봇은 당신의 대화 에이전트에 들어갈 각각의 컴포넌트들을 원하는대로 수정할 수 있게 합니다. 당신은 사용하기를 원하는 메시지 템플릿으로부터 NLP 엔진까지 그리고 당신의 챗봇과 연동하기위한 API까지 모든 것을 선택할 수 있습니다. 유연성은 그들의 사업을 위해서 오픈소스 챗봇 구축을 고려하는 주된 이유중 하나입니다.
2. 24/7 availability
당신은 동시에 다양한 메세징 플랫폼에서 24시간 가능한 당신의 챗봇을 만들 수 있습니다. 연중무휴의 사용성과 무정지 서비스는 당신의 고객지원 운영에 대한 지원을 도울 수 있고 당신의 지원 인력이 더 효율적으로 일하도록 도울 수 있습니다. 챗봇 그 자체로도 대부분의 질의에 응답할 수 잇습니다. 이러한 챗봇은 사용자와 최접점에 있습니다. 즉, 봇에 의해서 해결되지 못한 모든 요청은 처리할 수 있는 사람에게 전달 됩니다.
3. Choice of Natural Language Processing engine
당신의 웹페이지를 위해서 맞춤 챗봇을 개발할때, 알맞은 NLP엔진을 선택하는 것은 필수적입니다. 오픈소스챗봇으로는 당신의 선택에 따라 NLP엔진을 선택하는것이 자유롭고, 어떤 엔진이 그들에게 최고의 성과를 내는지 보고 싶은 이들에게 매우 적합합니다.

4. Data privacy

비즈니스가 당신의 웹사이트에서 데이터 기반 기술을 사용함에 따라서, 사용자 데이터를 보호하는 보안 서비스를 사용하는 것과 사용자 데이터를 위험에 빠트리는 빈틈을 없게 하는것에 관심이 있습니다. 오픈소스챗봇을 가지고 당신은 데이터가 어떻게 처리되고 사용되는지에 대한 완벽한 통제를 갖습니다. 이것은 당신이 사용자 데이터를 안전하게 보호하고 있다는 편안한 마음을 가지게 만들면서도 동시에 챗봇이 고객을 돕게 만듭니다.

What makes them different from non-open-source options on the market?

모든 오픈소스 기술의 가장큰 단점중 하나는 학습곡선이 가파르다는 것 입니다.(배우기 어렵다)
일반 사용자들에게 있어서 우분투는 윈도우처럼 사용자 친화적이거나, 직관적이거나 쉽지 않습니다.
오픈소스 커뮤니티에 개발자가 많고 디자인에 집중이 없다는 것은 놀라운 일이 아니다. 이것은 비 개발자 사용자들은 오픈소스 기술에 대해 자주 힘들어 한다는 의미입니다. 오픈소스 기술은 또한 아주 많은 지원을 제공하지 않습니다. 그래서 만약 당신이 문제를 가지고 있다면 단지 약간의 문서들을 가지고 당신이 직접 수정해야만 한다는 것이 기회입니다.
오픈소스 소프트웨어는 또한 거의 무료입니다. 독립 서비스를 위해서 당신은 지불할 필요가 없지만, 당신이 내야하는 다양한 비용들이 있습니다.
당신이 서버, 훈련, 하드웨어, 그리고 개발 비용을 고려하지 않았다면 이 비용들이 합쳐져야 합니다.
그럼에도 불구하고, 이러한 것들이 당신을 단념시키게 하지 마세요.
설립된 회사로부터 많은 합법적인 솔루션들도 같은 문제들에 대해서 다양한 심도에서 어려움을 격고 있습니다.
당신이 챗봇을 만드는데 도움을 주는 쉽고, 싸고, 더 도움이 되는 툴을 좋아한다면 다양한 옵션들이 있습니다.
회사들은 자주 당신이 무료로 챗봇을 만들 수 있도록 허락해 줍니다. 아래와 같은 방법과 같이 챗봇 만드는 것을 시작할 수 있습니다.
여기


(이상한 내용의 번역이 있으면 알려주시고, 질문을 남겨주세요..)

감사합니다.

반응형

+ Recent posts