AWS Comprehend를 사용하여 뉴스에서 회사 이름 추출
12489 단어 machinelearningdatasciencepythonaws
제 경우에는 청정 기술 분야에서 일하는 스타트업과 투자자 목록이 필요했습니다. 데이터 사이언스 작업에 좋은 환경이고 모든 AWS 리소스에 쉽게 액세스할 수 있는 Sagemaker 노트북에서 이 작업을 수행하기로 결정했습니다.
회사를 추출하는 데 사용한 AWS Comprehend는 명명된 엔터티 인식, 텍스트 분류 및 주제 모델링을 수행할 수 있는 즉시 사용 가능한 자연어 처리 서비스입니다.
1. IAM 역할 권한 설정
AWS는 IAM 역할을 사용하여 서비스에 대한 액세스를 제어합니다. Sagemaker에서 AWS Comprehend를 사용하려면 이 서비스에 대한 액세스 권한을 역할에 할당해야 합니다.
Sagemaker 세션에서 현재 역할을 얻을 수 있습니다.
sagemaker_session = sagemaker.Session()
role = sagemaker.get_execution_role()
어떤 역할이 사용되는지 알게 되면 여기에 AWS Comprehend 권한을 연결할 수 있습니다.
2. S3 버킷에서 데이터 가져오기
이 분석을 위해서는 boto3, sagemaker, pandas 및 seaborn과 같은 몇 가지 라이브러리만 필요합니다.
import boto3
import pandas as pd
import sagemaker
from tqdm.notebook import tqdm
tqdm.pandas()
import seaborn as sns
sns.set_theme(style="whitegrid")
분석을 위한 소스 데이터는 2012년부터 2021년까지의 TechCrunch 기사이며 기계 학습을 통해 청정 기술 범주로 필터링되었습니다. s3 버킷에서 데이터를 가져오겠습니다. 기사의 정리된 본문을 포함하는 clean_text
필드에 특히 관심이 있습니다.
# Load the dataset
s3 = boto3.client('s3')
obj = s3.get_object(Bucket = 'mysustinero',Key = 'cleantechs_predicted.csv')
techcrunch_data = pd.read_csv(obj['Body'])
3. AWS Comprehend 실행 및 응답 조사
단일 기사에 대해 AWS Comprehend를 실행하고 결과를 조사해 보겠습니다.
# launch comprehend client
client = boto3.client('comprehend')
response = client.batch_detect_entities(
TextList=[
techcrunch_data['clean_text'][819],
],
LanguageCode='en'
)
Response는 정확도와 오프셋이 있는 추출된 엔터티를 포함하는 JSON 개체입니다. ORGANIZATION
, EVENT
, PERSON
및 LOCATION
를 포함하여 많은 엔티티 available 가 있습니다.
response['ResultList'][0]['Entities']
4. 전체 데이터셋에 엔터티 추출 적용
응답의 구조를 이해하고 나면 텍스트에서 회사 목록을 추출하는 함수를 작성하는 것이 매우 쉬웠습니다.
def get_organizations(text):
response = client.batch_detect_entities(TextList=[text[0:4900]],LanguageCode='en')
# getting all entities
data = response['ResultList'][0]['Entities']
# get all dictionaries that contain orgs
orgs = [d for d in data if d['Type'] == 'ORGANIZATION']
# extract unique orgs, using set comprehension
unique_orgs = {d['Text'] for d in orgs}
return unique_orgs
그런 다음 전체 데이터 세트에 적용할 차례입니다.
df['orgs_list'] = df['clean_text'].progress_apply(get_organizations)
기사 URL과 회사 이름 사이에 링크가 있도록 데이터 세트를 정규화하기 위해 pandasexplode()
함수를 사용합니다.
# reshape a dataset
result_final = result.explode('orgs_list')
이 방법을 사용하여 얼마나 많은 고유한 회사를 추출했는지 계산해 봅시다.
orgs = result_final['orgs_list'].unique()
len(orgs)
# 5507
5. Techcrunch가 작성한 Clean Tech 회사의 내용을 분석합니다.
회사 이름을 추출한 후 다양한 종류의 분석을 실행할 수 있습니다. TechCrunch가 가장 많이 쓰는 이 분야의 회사에 대한 데이터를 추출하고 싶었습니다.
#calculate companies mentioned
dff = result_final.groupby(['orgs_list']).size().reset_index()
dff = dff.rename(columns= {0: 'count', 'orgs': 'company'})
# Generating most popular cleantech companies
dff_chart=dff[dff['count']>15]
categories_chart = sns.barplot(
y="company",
x="count",
data= dff_chart,
order=dff_chart
.sort_values('count', ascending=False).company).set(title='Most Mentioned Companies in TechCrunch CleanTech articles')
우리는 테슬라가 다른 회사들 사이에서 청정 기술에 관한 기사에서 꽤 많은 시간을 언급한 것을 봅니다. 흥미롭게도 몬산토는 청정 기술 스타트업과 비교할 때 꽤 많이 언급됩니다.
AWS Comprehend를 사용하여 청정 기술 생태계에서 회사 목록을 빠르게 생성할 수 있었습니다. 이는 분석가가 이러한 데이터 세트를 수동으로 생성할 때 기존 방법에 비해 많은 시간을 절약합니다.
목록은 기계 학습에 의해 생성되므로 기사에 언급된 실수와 청정 기술 분야가 아닌 회사가 있을 수 있습니다. 그러나 생성된 목록의 품질 검사는 여전히 훨씬 더 간단하고 빠릅니다.
Reference
이 문제에 관하여(AWS Comprehend를 사용하여 뉴스에서 회사 이름 추출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/aws-builders/extracting-company-names-from-news-using-aws-comprehend-1bg0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
sagemaker_session = sagemaker.Session()
role = sagemaker.get_execution_role()
이 분석을 위해서는 boto3, sagemaker, pandas 및 seaborn과 같은 몇 가지 라이브러리만 필요합니다.
import boto3
import pandas as pd
import sagemaker
from tqdm.notebook import tqdm
tqdm.pandas()
import seaborn as sns
sns.set_theme(style="whitegrid")
분석을 위한 소스 데이터는 2012년부터 2021년까지의 TechCrunch 기사이며 기계 학습을 통해 청정 기술 범주로 필터링되었습니다. s3 버킷에서 데이터를 가져오겠습니다. 기사의 정리된 본문을 포함하는
clean_text
필드에 특히 관심이 있습니다.# Load the dataset
s3 = boto3.client('s3')
obj = s3.get_object(Bucket = 'mysustinero',Key = 'cleantechs_predicted.csv')
techcrunch_data = pd.read_csv(obj['Body'])
3. AWS Comprehend 실행 및 응답 조사
단일 기사에 대해 AWS Comprehend를 실행하고 결과를 조사해 보겠습니다.
# launch comprehend client
client = boto3.client('comprehend')
response = client.batch_detect_entities(
TextList=[
techcrunch_data['clean_text'][819],
],
LanguageCode='en'
)
Response는 정확도와 오프셋이 있는 추출된 엔터티를 포함하는 JSON 개체입니다. ORGANIZATION
, EVENT
, PERSON
및 LOCATION
를 포함하여 많은 엔티티 available 가 있습니다.
response['ResultList'][0]['Entities']
4. 전체 데이터셋에 엔터티 추출 적용
응답의 구조를 이해하고 나면 텍스트에서 회사 목록을 추출하는 함수를 작성하는 것이 매우 쉬웠습니다.
def get_organizations(text):
response = client.batch_detect_entities(TextList=[text[0:4900]],LanguageCode='en')
# getting all entities
data = response['ResultList'][0]['Entities']
# get all dictionaries that contain orgs
orgs = [d for d in data if d['Type'] == 'ORGANIZATION']
# extract unique orgs, using set comprehension
unique_orgs = {d['Text'] for d in orgs}
return unique_orgs
그런 다음 전체 데이터 세트에 적용할 차례입니다.
df['orgs_list'] = df['clean_text'].progress_apply(get_organizations)
기사 URL과 회사 이름 사이에 링크가 있도록 데이터 세트를 정규화하기 위해 pandasexplode()
함수를 사용합니다.
# reshape a dataset
result_final = result.explode('orgs_list')
이 방법을 사용하여 얼마나 많은 고유한 회사를 추출했는지 계산해 봅시다.
orgs = result_final['orgs_list'].unique()
len(orgs)
# 5507
5. Techcrunch가 작성한 Clean Tech 회사의 내용을 분석합니다.
회사 이름을 추출한 후 다양한 종류의 분석을 실행할 수 있습니다. TechCrunch가 가장 많이 쓰는 이 분야의 회사에 대한 데이터를 추출하고 싶었습니다.
#calculate companies mentioned
dff = result_final.groupby(['orgs_list']).size().reset_index()
dff = dff.rename(columns= {0: 'count', 'orgs': 'company'})
# Generating most popular cleantech companies
dff_chart=dff[dff['count']>15]
categories_chart = sns.barplot(
y="company",
x="count",
data= dff_chart,
order=dff_chart
.sort_values('count', ascending=False).company).set(title='Most Mentioned Companies in TechCrunch CleanTech articles')
우리는 테슬라가 다른 회사들 사이에서 청정 기술에 관한 기사에서 꽤 많은 시간을 언급한 것을 봅니다. 흥미롭게도 몬산토는 청정 기술 스타트업과 비교할 때 꽤 많이 언급됩니다.
AWS Comprehend를 사용하여 청정 기술 생태계에서 회사 목록을 빠르게 생성할 수 있었습니다. 이는 분석가가 이러한 데이터 세트를 수동으로 생성할 때 기존 방법에 비해 많은 시간을 절약합니다.
목록은 기계 학습에 의해 생성되므로 기사에 언급된 실수와 청정 기술 분야가 아닌 회사가 있을 수 있습니다. 그러나 생성된 목록의 품질 검사는 여전히 훨씬 더 간단하고 빠릅니다.
Reference
이 문제에 관하여(AWS Comprehend를 사용하여 뉴스에서 회사 이름 추출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/aws-builders/extracting-company-names-from-news-using-aws-comprehend-1bg0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# launch comprehend client
client = boto3.client('comprehend')
response = client.batch_detect_entities(
TextList=[
techcrunch_data['clean_text'][819],
],
LanguageCode='en'
)
response['ResultList'][0]['Entities']
응답의 구조를 이해하고 나면 텍스트에서 회사 목록을 추출하는 함수를 작성하는 것이 매우 쉬웠습니다.
def get_organizations(text):
response = client.batch_detect_entities(TextList=[text[0:4900]],LanguageCode='en')
# getting all entities
data = response['ResultList'][0]['Entities']
# get all dictionaries that contain orgs
orgs = [d for d in data if d['Type'] == 'ORGANIZATION']
# extract unique orgs, using set comprehension
unique_orgs = {d['Text'] for d in orgs}
return unique_orgs
그런 다음 전체 데이터 세트에 적용할 차례입니다.
df['orgs_list'] = df['clean_text'].progress_apply(get_organizations)
기사 URL과 회사 이름 사이에 링크가 있도록 데이터 세트를 정규화하기 위해 pandas
explode()
함수를 사용합니다.# reshape a dataset
result_final = result.explode('orgs_list')
이 방법을 사용하여 얼마나 많은 고유한 회사를 추출했는지 계산해 봅시다.
orgs = result_final['orgs_list'].unique()
len(orgs)
# 5507
5. Techcrunch가 작성한 Clean Tech 회사의 내용을 분석합니다.
회사 이름을 추출한 후 다양한 종류의 분석을 실행할 수 있습니다. TechCrunch가 가장 많이 쓰는 이 분야의 회사에 대한 데이터를 추출하고 싶었습니다.
#calculate companies mentioned
dff = result_final.groupby(['orgs_list']).size().reset_index()
dff = dff.rename(columns= {0: 'count', 'orgs': 'company'})
# Generating most popular cleantech companies
dff_chart=dff[dff['count']>15]
categories_chart = sns.barplot(
y="company",
x="count",
data= dff_chart,
order=dff_chart
.sort_values('count', ascending=False).company).set(title='Most Mentioned Companies in TechCrunch CleanTech articles')
우리는 테슬라가 다른 회사들 사이에서 청정 기술에 관한 기사에서 꽤 많은 시간을 언급한 것을 봅니다. 흥미롭게도 몬산토는 청정 기술 스타트업과 비교할 때 꽤 많이 언급됩니다.
AWS Comprehend를 사용하여 청정 기술 생태계에서 회사 목록을 빠르게 생성할 수 있었습니다. 이는 분석가가 이러한 데이터 세트를 수동으로 생성할 때 기존 방법에 비해 많은 시간을 절약합니다.
목록은 기계 학습에 의해 생성되므로 기사에 언급된 실수와 청정 기술 분야가 아닌 회사가 있을 수 있습니다. 그러나 생성된 목록의 품질 검사는 여전히 훨씬 더 간단하고 빠릅니다.
Reference
이 문제에 관하여(AWS Comprehend를 사용하여 뉴스에서 회사 이름 추출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/aws-builders/extracting-company-names-from-news-using-aws-comprehend-1bg0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#calculate companies mentioned
dff = result_final.groupby(['orgs_list']).size().reset_index()
dff = dff.rename(columns= {0: 'count', 'orgs': 'company'})
# Generating most popular cleantech companies
dff_chart=dff[dff['count']>15]
categories_chart = sns.barplot(
y="company",
x="count",
data= dff_chart,
order=dff_chart
.sort_values('count', ascending=False).company).set(title='Most Mentioned Companies in TechCrunch CleanTech articles')
Reference
이 문제에 관하여(AWS Comprehend를 사용하여 뉴스에서 회사 이름 추출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws-builders/extracting-company-names-from-news-using-aws-comprehend-1bg0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)