IBM사의 인공지능 왓슨 서비스를 제공하고 있습니다. 인공지능 왓슨 서비스는 다양한 기능을 API로 제공하고 있습니다. 오늘 제가 소개해드릴 것은 왓슨 API 중에 AlchemyLanguage입니다. 


AlchemyLanguage 서비스란 무엇일까요?

AlchemyLanguage는 왓슨 API 가운데 IBM사가 '자연어'를 처리하는 것들 중 하나입니다. 서비스의 용도는 API 명칭으로부터 유추해볼 수 있습니다. 영어로 'Alchemy'라는 단어는 연금술이라는 뜻이고 API 명칭을 있는 그대로 직역하면 '연금술 언어'입니다. 이 서비스는 명칭처럼 언어를 갖고 연금술처럼 다양한 것을 생산해낼 수 있는 서비스입니다. 


텍스트는 우리에게 많은 정보를 제공합니다. 수능 언어 시험을 예로 들어보겠습니다. 수능 언어 시험은 보통 텍스트를 문학과 비문학으로 장르를 나누어서 시험 문제를 출제합니다. 문제를 풀 때 우리가 꼭 만나는 문제들이 있습니다. 시의 경우에는 화자의 심리 상태를 묻는 문제를  많이 볼 수 있습니다. 비문학 중에 논설문의 경우에는 텍스트의 주제를 묻는 문제가 자주 나옵니다. 이처럼 텍스트는 우리에게 글쓴이의 심리 상태라든가 주제, 화제 등 다양한 정보를 줍니다. 



AlchemyLanguage 서비스는 텍스트를 갖고 우리가 얻을 수 있는 다양한 정보를 제공해주는 왓슨 API입니다. 우리는 이 서비스를 통해 텍스트 또는 우리가 분석하고 싶은 페이지의 URL을 입력하면 그 텍스트의 저자, 텍스트의 주요한 컨셉, 키워드 등을 분석할 수 있습니다. 



어떤 용도로 사용할 수 있을까요?

AlchemyLanguage는 한 마디로 연금술이라고 정의할 수 있습니다. 텍스트를 분석해서 우리는 다양한 종류의 정보를 얻을 수 있습니다. 수많은 SNS 대화들을 AlchemyLanguage를 갖고 분석한다면 우리는 트렌드를 알 수 있을 것입니다. 예를 들어 어떤 업체가 페이스북 또는 트위터에 그 업체의 페이지를 개설했다고 가정합시다. 그럼 우리는 그 페이지를 팔로우한 사람들의 SNS상의 대화를 AlchemyLanguage로 분석한다면 사람들의 만족도, 심리 상태 등 의미있는 정보를 얻을 수 있을 것입니다. 이 것은 한 가지 예시일 뿐 결국 이 API를 어떻게 활용할 것인가는 전적으로 사용하는 사람들의 상상력 내지는 안목에 따라 달라질 것입니다. 





사용하기 위한 단계를 간략히 설명하겠습니다. 

1. 첫번째, IBM 블루믹스 계정이 있어야 합니다. IBM은 30일간 돈의 지불없이 사용할 수 있는 평가판을 제공하고 있습니다. 


2. 계정을 다 만들었다면 Watson 서비스 중에 AlchemyLanguage 서비스를 생성합니다. 


3. 서비스 신임 정보에서 Api key값을 얻을 수 있습니다. 


4. 원하는 sdk를 다운받고 서비스를 생성하는 부분에 Api Key 정보를 넣습니다. 왓슨 개발 클라우드 sdk는 Java, Node, Python, iOS를 제공합니다. 저는 Java를 사용했습니다. Java를 사용하는 경우 gradle이나 maven dependency를 통해 sdk를 내려받으시길 바랍니다.



이 단계까지 잘 따라오셨다면 AlchemyLanguage에서 제공하는 함수들을 사용할 준비가 된 것입니다. 지금부터는 이 서비스로부터 사용할 수 있는 다양한 함수들에 대해 알아보겠습니다.


getAuthors HTML이나 url의 저자를 추출하는 함수입니다. 언어의 지원 여부와는 관련이 없습니다. 이것은 Head태그 안에 있는 메타 정보에서 author 정보를 가져옵니다. 


getConcepts는 text HTML, URL의 컨셉을 추출하는 함수입니다. 여기서 말하는 컨셉이란 반드시 텍스트 속에 언급된 개념일 필요는 없습니다. 예를 들어 삼성의 갤럭시8, 애플의 아이폰8, 화웨이의 mate 9에 대한 비교분석 글이라면 그 글에 대한 개념은 스마트폰 산업이 될 수 있습니다. 이 함수를 지원하는 언어는 영어와 스페인어입니다. 


getTaxonomy는 글의 분류를 추출하는 메소드입니다. 글은 분류는 최대 5개의 계층으로 나누어집니다. 이 함수는 현재 영어가 지원됩니다. 

 

getTitle URL 또는 HTML의 제목을 추출합니다.


getKeywords text, url, html로부터 키워드들을 추출합니다. 중요한 키워드들을 추출합니다. 그리고 관련도에 따라 순위를 매깁니다.

 

getEntities는 컨텐츠로부터 개체를 추출합니다. 개체를 추출할 때 개체의 타입이 무엇인지, 그리고 글쓴이가 개체에 대해 어떤 감정을 느끼는지 등의 정보와 함께 반환합니다. 부가적으로 개체를 반환할 때 감정상태가 부정적이라면 그 부정적인 감정 상태를 이루는 구체적인 감정에 대해서도 같이 반환해줍니다. 이 함수를 지원하는 언어는 영어, 프랑스어, 독일어, 포르투갈어, 러시아어, 스페인어, 스웨덴어입니다. 


getEmotion은 텍스트나 URL, HTML에서 감정을 감지하는 함수입니다. 지원되는 언어는 영어입니다. 


getFeeds는 RSS 또는 ATOM 피드를 감지해서 감지한 URL을 반환합니다. 당신이 이 함수를 사용하려고 한다면 URL 만을 인자로 넘겨야 합니다. 피드를 추출하는 함수이므로 지원하는 언어와 관련이 없습니다.


getCombinedResults는 이름처럼 복합적인 결과를 얻고자 할 때 사용할 수 있습니다. 앞서 언급한 다양한 함수들을 통해 얻을 수 있는 각각의 결과들을 이 함수를 호출함으로써 얻는 것이 가능합니다. 



마무리!

Watson 서비스에서 제공하는 AlchemyLanguage를 사용하는 간략한 단계와 이 API에서 제공하는 다양한 함수들에 대해 알아보았습니다. 앞에서 소개한 함수들 외에도 더 다양한 함수가 있습니다. 이 함수들에 대해서는 추후에 소개하는 시간을 갖도록 하겠습니다. AlchemyLanguage에 대해 궁금했던 개발자 분들에게 조금이나마 도움이 되는 정보이길 바랍니다. 




  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기