根据已知词表选出好词(直通车)

直通车的选词优化。如何利用直通车后台信息选出匹配的基础好词。用python完成相应的思路,呈现出结果。
       我们都知道打造单品,引来精准流量,获取足够多的淘宝seo权重,直通车尤为重要,但是如何在直通车选词这个基础上不失误呢,下面介绍一个简单的方法。
      不管是下拉框,还是竞店转化词,还是top20万,生意参谋500词,下拉框等等。首先我们要有足够多的词去选。所以可以进行如下步骤选出比较好的词。
    1,选取首词集合wordSet.txt;里面词的数目特别多,但是不是非常匹配我们的产品,同样本身附带的点击转化都不是特别好。
    2,因为wordSet中很多词都不是特别匹配,那么我们要设定和自己产品匹配的词,所以我们选取元素 item.txt;把我们的元素都放在这个txt中,例如网布,时尚,简约,夏季,[核心类目词]等。
    3,为了在直通车中查询行情信息,减少工作量,尽量也不要重复选词。
会出现重复选词的原因:直通车会对关键词加"子",忽视空格,单元切割;例如"电脑椅子 家用转椅"和"转椅电脑椅 家用"是同一个词。
     注意点:在程序实现中怎么实现这个处理——用set();oldSet = [];每次产生新的元素去掉空格和子的都往oldSet里面添加,同时用newSet记录下来该词。当再产生新的元素,去掉空格和"子";选择条件问它是否在这个集合oldSet中添加过了。若有pass否则添加。这个虽然不是很完美,但是解决了基本所有的情况,并且容易实现。
    4,在直通车后台的流量解析中对选择出来的关键词,调整信息取行业7天移动pc的参数信息;呈现到infomation.txt;每个关键词按照对应格式存储下来。这里不方便爬取,词又不是很多,所以直接选择的复制粘贴。
关于这个文本处理,在我的这篇博客中有记录。直通车后台选词的文本处理 
    5,通过对应的正则匹配或者字符串切割,生成需要的信息进行存储,其中columns 对应词标的生成result.csv

两个py文件,一个是1-3步骤(demo1.py),一个是4-5步骤(demo2.py);思路非常清晰。

demo1.py __准备了两个备用txt文件(strings1,strings存储).

def strToD(ss): 
    for x in range(len(ss)):
        ss[x] = ss[x].split('
')[0]  
    return ss  

strings = open('F:\By\September\160918\resData\chooseOf2.txt').readlines();
target066 = open('F:\By\September\160918\resData\item.txt').readlines();

strings = strToD(strings)

strings1 = strToD(open('F:\By\September\160918\resData\chooseOf.txt').readlines())

target066 = strToD(target066)

def setKw2066(strings,target066):   
    #存储目标字格
    target = set()
    for ss in target066:
        for s1 in ss:
            if(s1 in target):
                pass
            else:
                target.add(s1)
    
    result = []
    for string in strings:
        if((set(string) &target) == set(string) ):
            result.append(string)
    
    return result

result = setKw2066(strings1,target066)

result.extend(setKw2066(strings,target066))

'''把result 写入文件'''
def writeRes(result, string0 = 'res_kw', hz = None):
    file = open('F:\By\September\160918\resData\'+ string0 + '.txt', 'w+')
    for i in result:
        file.write(hz + i + hz)
        file.write('
')
    file.close
    
''' 开始去重 '''
def uni2Kw(result):
    tt = []
    kk = []
    for x in result:
        if(set(x) not in tt):
            if('子' in set(x)):
                set(x).remove('子')
            if(' ' in set(x)):
                set(x).remove(' ')
            tt.append(set(x))
            kk.append(x)
        else:
            pass
    return kk

kk = uni2Kw(result)

writeRes(kk, 'infomation1', '——')
demo2.py__其中setIndex.txt存储导出表格的头元素。

import re
import numpy as np
import pandas as pd

#去掉 “/n”
def remove_n(l):
    for i in range(len(l)):
        l[i] = l[i].split('
')[0]
    return l


set_wd = remove_n(open('F:\By\September\160918\resData\lib2\infomation.txt','r+').readlines())

set_word = [] #index
sss = []
for i in range(len(set_wd)):
    if(set_wd[i] == ''):
        continue
    match_word = re.match(r'——(.*)——', set_wd[i], re.I|re.M)
    if(match_word):
        set_word.append(match_word.group(1))
        print ('读取到关键词[ '+ match_word.group(1) +' ]的信息')
       #sss.append(match_word.group(1))
    else:
        kk = set_wd[i].split(':')
        if(len(kk)<2):
            sss.append('设备')
        else:
            sss.append(kk[1])

data = np.array(sss)
data.shape = len(sss)/18,18

columns = remove_n(open('F:\By\September\160918\resData\lib2\setIndex.txt','r+').readlines())#columns
df = pd.DataFrame(data, index = set_word,columns = columns)
print (df)

df.to_csv('C:\Users\Administrator\Desktop\result.csv')



原文地址:https://www.cnblogs.com/actanble/p/6713446.html