使用数据科学和编程知识开始被动收入流
我最近开始了一个新网站。但我如何将其货币化?
拥有一个产生被动收入的网站并不容易。您需要做的第一件事是放置广告。但是,如果你不能产生流量,这些广告有什么用呢?
让我们产生流量并使用我们的编程技能
流量需要 SEO(搜索引擎优化)。产生流量涉及多个部分。除了高质量的内容、URL、图片等,真正重要的是你使用的关键词。
这就是我的 Python 编程知识派上用场的地方。我想生成不仅与我的主题相关而且应该在 Google 上流行的关键字(标签)。
首先是代码
这是我创建以下脚本的地方:
import re
from string import punctuation
import nltk
from nltk import TreebankWordTokenizer, sent_tokenize
from nltk.corpus import stopwords
class KeywordsGenerator:
def __init__(self, pytrends):
self._pytrends = pytrends
def generate_tags(self, file_path, top_words=30):
file_text = self._get_file_contents(file_path)
clean_text = self._remove_noise(file_text)
top_words = self._get_top_words(clean_text, top_words)
suggestions = []
for top_word in top_words:
suggestions.extend(self.get_suggestions(top_word))
suggestions.extend(top_words)
tags = self._clean_tokens(suggestions)
return ",".join(list(set(tags)))
def _remove_noise(self, text):
#1. Convert Text To Lowercase and remove numbers
lower_case_text = str.lower(text)
just_text = re.sub(r'\d+', '', lower_case_text)
#2. Tokenise Paragraphs To words
list = sent_tokenize(just_text)
tokenizer = TreebankWordTokenizer()
tokens = tokenizer.tokenize(just_text)
#3. Clean text
clean = self._clean_tokens(tokens)
return clean
def _clean_tokens(self, tokens):
clean_words = [w for w in tokens if w not in punctuation]
stopwords_to_remove = stopwords.words("english")
clean = [w for w in clean_words if w not in stopwords_to_remove and not w.isnumeric()]
return clean
def get_suggestions(self, keyword):
print(f'Searching pytrends for {keyword}')
result = []
self._pytrends.build_payload([keyword], cat=0, timeframe='today 12-m')
data = self._pytrends.related_queries()[keyword]['top']
if data is None or data.values is None:
return result
result.extend([x[0] for x in data.values.tolist()][:2])
return result
def _get_file_contents(self, file_path):
return open(file_path, "r", encoding='utf-8',errors='ignore').read()
def _get_top_words(self, words, top):
counts = dict()
for word in words:
if word in counts:
counts[word] += 1
else:
counts[word] = 1
return list({k: v for k, v in sorted(counts.items(), key=lambda item: item[1])}.keys())[:top]
if __name__ == "1__main__":
from pytrends.request import TrendReq
nltk.download('punkt')
nltk.download('stopwords')
pytrends = TrendReq(hl='en-GB', tz=360)
tags = KeywordsGenerator(pytrends)\
.generate_tags('text_file.txt')
print(tags)
然后是依赖项
运行此脚本所需的包是:
nltk==3.7
pytrends==4.8.0
脚本解释
我将我的文章内容复制并粘贴到一个文本文件中:‘text_file.txt’
然后代码选择该文件并将关键字作为逗号分隔的字符串提供给我。
为达到这个:
- 我创建了一个名为 KeywordsGenerator 的类
- 这个类有一个功能:
generate_tags
- 该函数
generate_tags
执行以下任务:
- 从文本文件中获取内容
- 使用 NLP 通过将句子标记为单词、删除标点符号、数字等来清理文本。
- 通过出现次数获取最相关的单词
- 然后对于每个单词,使用
pytrends
API从 Google 获取趋势相似的术语 - 最后用逗号加入单词列表
4. 然后我使用关键字并将它们粘贴到我网站的 SEO 区域。
这些术语不仅与我的主题相关,而且在 Google 上也很流行。自从有了新的关键字,我的网站的排名一直在上升,并且正在产生流量。所以,嘿,这个简单的脚本是我们如何利用我们的知识并充分利用它的方式。我想分享脚本,以防有人遇到类似的挑战。
我希望它也可以帮助大家将您们的作品货币化。