Sitemap

이 칼럼에서 소개할 콘텐츠 생성 기술과 기법은 공상과학 소설에서나 나올 법한 일이지만 이제는 현실이 되고 자유롭게 접근할 수 있습니다.

코딩 실험을 마치고 이 글을 쓰기 시작한 후, 저는 이 정보를 공개적으로 공유하는 것의 긍정적인 의미와 부정적인 의미에 대해 숙고했습니다.

보시다시피 이제는 기계 생성 콘텐츠를 생산하는 것이 상대적으로 쉽고 세대의 품질이 빠르게 향상되고 있습니다.

이것은 우리가 이전보다 훨씬 더 많은 스팸 결과를 보게 될 것이라는 슬픈 결론에 이르게 했습니다.

다행히 Google은 최근 2019년 스팸 보고서를 발표하여 저를 안심시켰습니다.

이메일 스팸 폴더를 본 적이 있습니까?검색 스팸을 퇴치하기 위해 취하는 조치 없이 검색 결과가 표시될 수 있습니다.오늘 우리의 게시물은 Google 검색 결과에서 스팸을 차단하는 방법을 살펴봅니다. https://t.co/RA4lUoDXEF

— Google SearchLiaison(@searchliaison) 2020년 6월 9일

“작년에 우리는 매일 검색되는 250억 개 이상의 페이지가 스팸임을 확인했습니다. (만약 그 페이지들이 책의 한 페이지라면, 그것은 매일 "전쟁과 평화"의 2천만 부 이상이 될 것입니다!)

우리의 노력은 결과를 통한 방문의 99% 이상이 스팸 없는 경험으로 이어지도록 도왔습니다.

지난 몇 년 동안 우리는 가짜 버튼, 압도적인 광고, 의심스러운 리디렉션, 멀웨어와 같이 검색자를 성가시거나 해치는 동작으로 자동 생성 및 스크랩된 콘텐츠를 포함하는 스팸 사이트가 증가하는 것을 관찰했습니다.이러한 웹 사이트는 종종 기만적이며 사람들에게 실질적인 가치를 제공하지 않습니다.2019년에는 이러한 유형의 스팸이 검색 사용자에게 미치는 영향을 2018년에 비해 60% 이상 줄일 수 있었습니다."

Google은 하루에 엄청난 수의 스팸 페이지를 보고하지만 전반적으로 스팸을 억제하는 데 99%의 놀라운 성공률을 보고했습니다.

더 중요한 것은 기계 생성 스팸 콘텐츠를 억제하는 데 놀라운 진전을 이뤘다는 것입니다.

이 칼럼에서는 컴퓨터가 NLG의 최신 기술을 사용하여 콘텐츠를 생성할 수 있는 방법을 코드로 설명하겠습니다.

귀하의 콘텐츠를 유용하게 유지하기 위해 이론과 몇 가지 지침을 살펴보겠습니다.

이렇게 하면 Google과 Bing이 제거하기 위해 24시간 노력하고 있는 모든 웹 스팸에 걸리지 않도록 하는 데 도움이 됩니다.

얇은 콘텐츠 페이지

제목 및 메타 설명 생성에 대한 내 기사에서 페이지 콘텐츠를 요약하여 메타 태그를 생성하는 효과적인 기술을 공유했습니다.

단계를 따르면 실제로 잘 작동하고 고품질의 새로운 텍스트를 생성할 수도 있음을 알 수 있습니다.

하지만 페이지에 요약할 내용이 포함되어 있지 않다면 어떻게 될까요?기술이 실패합니다.

이 문제를 해결할 수 있는 아주 영리한 트릭을 알려 드리겠습니다.

이러한 페이지에 양질의 백링크가 있는 경우 앵커 텍스트와 백링크를 둘러싼 텍스트를 요약할 텍스트로 사용할 수 있습니다.

기다리다!

하지만 왜?

1998년, Google 검색 엔진의 설립까지 거슬러 올라가 보겠습니다.

새로운 검색 엔진을 설명하는 문서에서 Page와 Brin은 섹션 2.2에서 매우 흥미로운 통찰력을 공유했습니다.

“대부분의 검색 엔진은 링크 텍스트를 링크가 있는 페이지와 연관시킵니다. 또한 링크가 가리키는 페이지와 연결합니다. 이것은 몇 가지 장점이 있습니다. 첫째, 앵커는 종종 페이지 자체보다 웹 페이지에 대한 더 정확한 설명을 제공합니다. 둘째, 이미지, 프로그램 및 데이터베이스와 같은 텍스트 기반 검색 엔진으로 색인을 생성할 수 없는 문서에 앵커가 존재할 수 있습니다. 이를 통해 실제로 크롤링되지 않은 웹 페이지를 반환할 수 있습니다."

기술 계획은 다음과 같습니다.

  1. 새로운 Bing 웹마스터 도구를 사용하여 백링크 및 해당 앵커 텍스트를 가져옵니다.
  2. 최고 품질의 백링크에서 주변 텍스트를 스크랩합니다.
  3. 스크랩한 텍스트를 사용하여 요약 및 긴 형식의 콘텐츠를 만듭니다.

Bing 웹마스터 도구 백링크 보고서

BWT의 새로운 백링크 도구에서 제가 좋아하는 한 가지 기능은 자신의 사이트뿐만 아니라 다른 사이트도 가리키는 링크를 제공할 수 있다는 것입니다.

나는 이것이 유료 도구에 대한 대중적인 무료 대안이 될 것으로 기대합니다.

큰 링크 및 앵커 목록이 포함된 CSV 파일을 내보냈지만 Python pandas를 사용하여 로드하려고 했을 때 여러 형식 문제를 발견했습니다.

임의의 앵커 텍스트에는 쉼표가 포함될 수 있으며 쉼표로 구분된 파일에 문제가 발생할 수 있습니다.

Excel에서 파일을 열고 Excel 형식으로 저장하여 해결했습니다.

Python으로 주변 텍스트 스크래핑

위의 스크린샷에서 볼 수 있듯이 많은 앵커 텍스트가 매우 짧습니다.

페이지를 긁어 모아 포함하는 단락을 얻을 수 있습니다.

먼저 BWT에서 내보낸 보고서를 로드합니다.

import pandas as pddf = pd.read_excel("www.domain.com_ReferringPages_6_7_2020.xlsx")df.head()

사용하는 인바운드 링크 수로 Target URL을 검토했습니다.

df.groupby("Target Url").count().tail()

이 코드를 사용하여 아이디어를 평가하기 위해 페이지 중 하나에서 백링크를 가져왔습니다.

backlinks = set(df[df["Target Url"] == "https://domain.com/example-page"]["Source Url"])

이제 대상 URL과 백링크를 사용하여 앵커가 포함된 관련 앵커 텍스트를 가져오는 방법을 살펴보겠습니다.

백링크에서 텍스트 가져오기

먼저 requests-html을 설치해 보겠습니다.

!pip install requests-htmlfrom requests_html import HTMLSessionsession = HTMLSession()

코드를 단순하게 유지하기 위해 링크 주변의 텍스트를 가져오는 CSS 선택기를 수동으로 생성하겠습니다.

JavaScript 또는 Python 코드를 사용하여 페이지의 링크 및 앵커가 주어지면 이를 계산하는 것은 어렵지 않습니다.

아마도 그것은 당신이 숙제로 시도하는 좋은 생각일 것입니다.

예시 백링크 페이지를 열고 Chrome 개발자 도구를 사용하여 관심 있는 단락을 마우스 오른쪽 버튼으로 클릭하고 CSS 선택기를 복사할 수 있습니다.

제가 사용한 셀렉터입니다.

with session.get(url) as r:    selector="#entry-78782 > div.asset-content.entry-content > div > p:nth-child(5)"    paragraph = r.html.find(selector, first=True)    text = paragraph.text

돌아온 글입니다.예제 앵커 텍스트의 텍스트를 굵게 표시했습니다.

우리는 교사 유지가 학생의 성과를 향상시키고 반대로 교사 이직이 학생의 성취도에 해를 끼칠 수 있다는 것을 알고 있습니다.매년 약 16%의 교육자들이 현장을 떠나며, 저와 같은 많은 교사들이 첫 5년 이내에 떠나는 것으로 알고 있습니다.교사들은 그들이 학교를 떠나는 가장 큰 이유는 자율성과 목소리의 결여와 함께 문화, 특히 규율 문제와 함께 있다고 보고합니다.게다가, 회전율은 비용이 많이 듭니다.

이제 재미있는 부분으로 가자!

신경 텍스트 생성

이전 기사에서 제목과 메타 설명을 생성하는 데 사용한 것과 동일한 요약 코드를 사용하지만 약간의 차이가 있습니다.

원래 단락보다 짧은 원하는 요약 길이를 지정하는 대신 더 긴 길이를 지정합니다.그게 효과가 있을까요?보자!

!pip install transformersfrom transformers import pipelinesummarizer = pipeline('summarization')generated_text = summarizer(text, min_length=150, max_length=250)print(generated_text)

흥미로운 경고를 받았습니다.

max_length는 250으로 설정되어 있지만 input_length는 99에 불과합니다.max_length를 수동으로 줄이는 것을 고려할 수 있습니다. 요약기('...', max_length=50)

생성된 텍스트를 보자.

[{'summary_text': "Around 16 percent of educators leave the field every year. Teachers report that the biggest reasons they leave are lack of autonomy and voice, alongside issues of culture and discipline. Turnover is costly, shorting districts upwards of $2.2 billion a year, according to a report by the National Council of Teachers of English, the nation's largest teacher organization. The report also found that teacher retention improves outcomes for students, and conversely, that teacher turnover can harm student achievement. The study was published in the Journal of Education, published by Simon & Schuster, a division of Penguin Random House, on November 14. For more, visit www.simonandschuster.com. For confidential support, call the National Suicide Prevention Lifeline at 1-800-273-8255 or visit http://www.suicidepreventionlifeline.org/."}]

원본 텍스트는 492자, 생성된 텍스트는 835자였습니다.

그러나 생성된 텍스트에 나타나는 품질과 참신한 문장을 보십시오.절대적으로, 마음을 불어넣습니다!

이 기술로 더 긴 텍스트를 생성할 수 있습니까?예!

generated_text = summarizer(text, min_length=300, max_length=600)print(generated_text)[{'summary_text': "Around 16 percent of educators leave the field every year. Teachers report that the biggest reasons they leave are lack of autonomy and voice, alongside issues of culture and discipline. Turnover is costly, shorting districts upwards of $2.2 billion a year, according to a report by the National Council of Teachers of English, the nation's largest teacher organization. The report also found that teacher retention improves outcomes for students, and conversely, that teacher turnover can harm student achievement. The study was published in the Journal of Education, published by Simon & Schuster, a division of Penguin Random House, on November 14. For more, visit www.simonandschuster.com. For confidential support, call the National Suicide Prevention Lifeline at 1-800-273-8255 or visitxa0http://www.suicidepreventionlifeline.org/. For support in the U.S., call the Samaritans on 08457 90 90 90 or visit a local Samaritans branch, see www.samaritans.org for details. In the UK, contact the National College of Education on 0300 123 90 90, orxa0 visitxa0the Samaritansxa0in the UK. For help in the United States, callxa0thexa0National Suicide Prevention Line on 1xa0800xa0273xa08255,xa0orxa0inxa0the UK on 0800xa0123xa09255. For support on suicide matters in thexa0U.S. call thexa0Nationalxa0Collegexa0of Education,xa0Englandxa0on 08457xa090 90 90. For information on suicide prevention in the UK andxa0Europe, visit the Nationalxa0College of England and Wales."}]

이 생성된 텍스트는 1,420자이며 논리적 흐름을 유지합니다!

이 기술을 지원하는 짐승은 BART라는 Facebook의 모델입니다.

논문의 저자는 이를 BERT의 일반화된 형태로 설명합니다.

이것이 어떻게 작동하는지 봅시다.

신경 텍스트 생성 작동 방식

일련의 숫자가 제시되고 다음 숫자를 추측해야 하는 적성 또는 IQ 테스트를 받은 적이 있습니까?

본질적으로 우리 모델이 초기 텍스트를 제공하고 다음 단계를 예측하도록 모델에 요청했을 때 위에서 수행한 작업입니다.

그것은 우리의 초기 텍스트를 일련의 숫자로 바꾸고, 다음 숫자를 추측하고, 추측된 숫자를 포함하는 새로운 순서를 취하고 같은 과정을 다시 반복했습니다.

이것은 우리가 지정한 길이 제한에 도달할 때까지 계속됩니다.

이제 이것은 단순한 숫자가 아니라 벡터, 보다 구체적으로(BERT 및 BART의 경우) 양방향 단어 임베딩입니다.

딥 러닝 기사 1부와 2부에서 GPS 유추를 사용하여 벡터와 양방향 단어 임베딩에 대해 설명했습니다.확인하시기 바랍니다.

요약하면, 임베딩은 그들이 나타내는 단어에 대한 풍부한 정보를 인코딩하여 예측의 품질을 극적으로 향상시킵니다.

이것이 어떻게 작동하는지에 대한 한 가지 예입니다.

"반복적인 작업을 수행하는 SEO를 위한 최고의 프로그래밍 언어는 ____이고 프런트 엔드 감사를 수행하는 SEO를 위한 최고의 프로그래밍 언어는 ____입니다."라는 텍스트가 주어지면 모델이 문장을 완성하도록 요청합니다.

첫 번째 단계는 단어를 숫자/임베딩으로 변환하는 것입니다. 여기서 각 임베딩은 컨텍스트에서 단어를 식별합니다.

그런 다음, 이것을 컴퓨터가 풀 수 있는 퍼즐로 바꾸어 주어진 맥락에서 빈칸을 채울 수 있는 숫자/임베딩을 알아내십시오.

이러한 유형의 퍼즐을 풀 수 있는 알고리즘을 언어 모델이라고 합니다.

언어 모델은 영어나 다른 언어의 문법 규칙과 유사합니다.

예를 들어 텍스트가 질문이면 물음표로 끝나야 합니다.

차이점은 모든 단어와 기호가 숫자/임베딩으로 표시된다는 것입니다.

이제 흥미로운 점은 딥 러닝(여기에서 우리가 사용하는 것)에서는 많은 문법 규칙 목록을 수동으로 만들 필요가 없다는 것입니다.

모델은 효율적인 시행착오를 통해 경험적으로 규칙을 학습합니다.

이것은 모델이 매우 강력한 하드웨어를 사용하여 며칠 동안 방대한 데이터를 통해 훈련되는 사전 훈련 단계에서 수행됩니다.

우리에게 가장 좋은 점은 이러한 노력의 결과가 누구나 무료로 사용할 수 있다는 것입니다.

우리는 정말 운이 좋지 않습니까?

BERT는 언어 모델의 한 예이며 GPT-2 및 BART도 마찬가지입니다.

이것을 좋은 용도로 사용하는 방법

위에서 언급했듯이 이 기능은 정말 강력하고 쓸모없는 콘텐츠를 비교적 저렴하게 대규모로 휘젓는 데 사용할 수 있습니다.

개인적으로 검색하는 동안 쓰레기를 헤매는 데 시간을 낭비하고 싶지 않습니다.

시간이 지나면서 콘텐츠가 검색에서 수행되려면 다음이 필요하다는 것을 깨달았습니다.

  • 유용한.
  • 진정한 필요를 충족시키십시오.

그렇지 않으면 컴퓨터든 인간이 만든 것이든 상관없이 최종 사용자의 참여나 검증을 받지 못할 것입니다.

순위와 성과의 가능성은 정말 낮습니다.

이것이 내가 세대를 더 잘 제어할 수 있는 요약 및 번역 또는 질문/답변과 같은 기술을 선호하는 이유입니다.

그들은 당신이 새로운 가치를 추가하고 있는지 확인하는 데 도움이 될 수 있습니다.

커뮤니티 프로젝트 및 학습 리소스

커뮤니티의 더 많은 사람들이 재미에 참여할 수 있도록 이 기사를 코드로 가볍게 유지하고 설명을 최대한 간단하게 유지하려고 했습니다.

그러나 기술적인 경향이 있다면 이 주제에 대한 보다 세분화되고 수학적 설명을 즐길 수 있을 것입니다.

위의 링크된 기사에서 "추가 읽기 섹션"의 링크도 따라가십시오.

이제 흥미로운 소식을 전해드리겠습니다.

커뮤니티에 작업 중인 Python 프로젝트를 공유해 달라고 요청했습니다.나는 아마 소수를 예상하고 있었고, 나는 내가 얼마나 많은 것을 돌려받았는지에 완전히 날아갔다. #기다려라 🐍🔥

이것은 Python과 JS이지만 어쨌든 거기에 넣을 것입니다!Google 지도에서 스팸을 차단하기 위한 Chrome 확장 프로그램입니다.서버 코드는 Python에 있으며 주소 유효성 검사 및 분류를 수행합니다. pic.twitter.com/Rvzfr5ku4N

— zchtodd(@zchtodd) 2020년 6월 8일

1.https://t.co/zyaafY0bcd를 찍는 반복적인 스크린샷을 자동화하는 Python의 RPA
2.메타 제목의 단어가 방문자가 사용하는 쿼리와 일치하지 않는 페이지를 확인하는 검색 콘솔 API + NLP: https://t.co/KsYGds7w1r

— Michael Van Den Reym(@vdrweb) 2020년 6월 8일

삼.검색 콘솔 API https://t.co/qX0FxSoqgN을 사용하여 검색 콘솔 노출이 있는 모든 URL의 상태 코드 확인

— Michael Van Den Reym(@vdrweb) 2020년 6월 8일

안녕 햄릿!

퍼지 일치 기능이 있는 리디렉션 검사기를 개발 중입니다.

@GoogleColab 노트북이 있지만 이상적으로는 @streamlit에 배포하여 사람들이 드래그 앤 드롭을 통해 한 번의 클릭으로 리디렉션 품질을 평가할 수 있도록 하고 싶습니다.

곧 공유할게요 🙂

— Charly Wargnier(@DataChaz) 2020년 6월 9일

@hamletbatista https://t.co/oPt5M393Lu
@streamlit을 사용하여 작업했습니다.
더 매력적인 메타 제목을 작성하십시오.
설명 영상: https://t.co/YvVoFMQ4FS

— Anubhav Bittoo Narula (@anubhavn22) 2020년 6월 9일

사회와 사회를 긁어모으기 위해 Red neuronal para saber el sentimiento del escrito y de ahí sacar gráficas con datastudio o kibana (perdona que responda en español pero mi inglés es basante mejorable)

— JaviLázaro(@JaviLazaroSEO) 2020년 6월 8일

1.로그 파일을 읽고 5xx/4xx를 실시간으로 slack에 게시!
2.키워드 의도 대 URL 일치 점수.

— Venus Kalra (@venuskalra) 2020년 6월 9일

https://t.co/9we85HXJgJ

— Marat Gaziev(@MaratGaziev) 2020년 6월 9일

저는 #SEO 및 온라인 마케터를 위한 패키지를 만들고 있습니다. 여기에는 다음이 포함됩니다.
– 크롤러
– robots.txt 테스터
– SERP 검사기
– Sitemap을 DataFrame으로 변환기
– URL to DataFrame 변환기

그리고 더 🙂 https://t.co/BMVeeQaTxE

— Elias Dabbas(@eliasdabbas) 2020년 6월 9일

아름다운 수프 + 지식 상자 API + Cloud Entity API로 일부 콘텐츠 분석!🐍🐍🐍

— Jess 그러나 6피트 거리(@jessthebp) 2020년 6월 8일

추가 리소스:


이미지 크레딧

작성자가 찍은 모든 스크린샷, 2020년 6월

모든 카테고리: 블로거