## wuliaoKeyword (關鍵詞物料生成器)
[TOC]
生成關鍵詞物料工具。
### 你需要準備的文件:
1. 關鍵詞文件。`.txt` 類型文件。
2. 關鍵詞物料生成規則文件。`.csv` 類型文件。
3. 備選項(如果你想精細控制的話):
* 關鍵詞 【匹配模式】配置文件。`.json` 類型文件。詳情 [匹配模式精細配置](#ppms-json)
* 關鍵詞 【出價】配置文件。 `.json` 類似文件。詳情 [出價精細配置說明](#chujia-json)
### 關鍵詞物料生成規則文件內容要求:
其實,就是關鍵詞物料的模板,只是要加上幾列,并且要填上必要的內容。需要更改的地方如下:
#### 1.新增多出的列及列標題:
+ groupBy —— 分詞核心詞/字符/組合(組合用 "&" 連接),[詳情](#for-groupby)
+ findBy —— 分詞匹配規則(包含、相同,默認"包含"),[詳情](#for-findby)
+ isGroupByLength —— 是否按詞長再次分組,默認"否"。(如果填"是"則會更改【單元/推廣組】名稱:加上"-N"后綴,例如:`‘編程培訓-前端-10’`。**`如果你不想增加推廣單元,一定不要填"是")`** ,[詳情](#for-isGroupByLength)
以下是關于新增列填寫說明:
<h5 id="for-findby">1.1.1 groupBy</h5>
groupBy 列填寫的是分詞規則,即哪些詞可以分到這一推廣單元(推廣組)。支持的寫法:
* `%t`—— 包含 **非漢字符號** 的關鍵詞。
* `核心字詞`—— 包含 `核心字詞` 的關鍵詞。
* `核心字詞&核心字詞...`—— 包含多個不同 `核心字詞` 組合的關鍵詞。核心字詞的個數不限制。是包含還是結構相同由 `findBy` 列的 `包含` 或者 `相同` 來控制。它們的對分詞的效果如下:
* `包含`,默認值,留空的話將是 `包含`。它指`核心字詞`組合中的每個 `核心字詞` 都在當前的關鍵詞中。
* `相同`, 它指不僅所有`核心字詞`都有而且 `核心字詞` 出現的先后順序一致。
* 例子:
```
關鍵詞: 上海JAVA培訓大概多少錢
核心詞組合:JAVA&上海
```
>* 在`包含` 模式下分到詞。'JAVA' 和 '培訓' 都包含在 "上海JAVA培訓大概多少錢" 中。
>
>* 在`相同` 模式下分不到詞。 'JAVA' 和 '培訓' 雖都包含在 "上海JAVA培訓大概多少錢" 中,但順序不一致。
* `核心字詞&%t`—— 包含`核心字詞`并且包含 **非漢字符號** 的關鍵詞。 *`findBy`* 的控制無效,默認使用`包含` 模式
* `核心字詞&核心字詞...&%t`—— 包含`核心字詞`組合并且包含 **非漢字符號** 的關鍵詞。 *`findBy`* 的控制無效,默認使用`包含` 模式。
>**注意**: 規則中使用 `&` 作為多條件連接符號,其他符號將被視為條件本身,因為處理過程中工具使用 `&` 作為分割符使用。不用其他符號也是為了與 Excel 及類似軟件的運算符區分開來,方便編輯。
----
<h5 id="for-findby">1.1.2 findBy</h5>
findBy 列用指定對核心詞的匹配方式。就兩種:
* `包含`: 核心詞均包含在關鍵詞中。默認方式。
* `相同`: 能匹配跟多個核心詞組成的組合結構(先后順序)一致的關鍵詞。
**注意:**
* 留空則 為 `包含`模式。
* 當 groupBy 列下的單元格有 `%t` 標記時,`相同` 不起作用,將用 `包含` 模式。
----
<h5 id="for-isGroupByLength">1.1.3 isGroupByLength</h5>
isGroupByLength 用來控制是否根據通過 groupBy、findBy 匹配到的關鍵詞的字數(長度)進一步細分。如果填`“是”` 將會更改【推廣組】(也叫【推廣單元】)的名稱。其結果是:
* 關鍵詞按字數分組(同時符合分詞規則),只是對符合 `核心詞、核心詞組合`的關鍵詞再次按字數細分。
* 會增加推廣單元(推廣組)的個數。若再細分,在不增加推廣計劃的前提下,只能在【推廣單元】下手了。每增加一個推廣單元我們要做的事情也會增加,如果你的帳戶沒有這樣的管理方式,又或者你不希望給自己帶來更多麻煩,不要填"是"。 如果填"是",則結果類似下面的例子:
```
培訓-好-10 --> 所有字數為 10 且有“培訓”、“好” 的關鍵詞均分在該組下。
培訓-好-11 --> 所有字數為 11 且有“培訓”、“好” 的關鍵詞均分在該組下。
```
----
#### 2. 要更改的列標題:
因為各個渠道的物料有所差異,列標題的名稱也有差異,因此有些地方要進行統一命名。
+ tgjh —— 推廣計劃名稱,將【推廣計劃/名稱】列名改為:`tgjh`;
+ group —— 單元(推廣組)名,將物料模板上定義【推廣單元】、【推廣組】名稱的列的列名改為:`group`;
+ ppms —— 匹配模式,將物料模板上定義關鍵詞【匹配模式】的列名改為:`ppms`;
+ chujia —— 出價,將物料模板上定義關鍵詞【出價】的列的列名改為:`chujia`;
+ keyword —— 關鍵詞,將物料模板上定義【關鍵詞】的列的列名改為:`keyword`;
+ pcURL —— 計算機訪問URL,同樣的更改定義【PC訪問的推廣頁面地址】的列的列名改為:`pcURL`
+ ydURL —— 移動訪問URL,同樣的更改定義【移動訪問的推廣頁面地址】的列的列名改為:`ydURL`
> 注意:
>
>1. 要新增的列以及要更改列名必須做了處理,否則無法處理。
>2. 處理過程中都是按 “關鍵詞物料生成規則CSV文件” 一行一行地進行,CSV 的 **行** 有空白的地方并且不在精細處理的范圍內,則輸出的結果也是空的。
>3. 分詞時,將根據 `groupBy` 列中規則最長的行開始,這樣可以保證核心詞較多的組能分到詞,因此不必擔心條件多的推廣組分不到詞。(當然這取決關鍵詞自身,以及`分詞模式選項`控制--`findBy`)
>4. 每個推廣平臺的物料會有所差異,為保證輸出結符合物料的要求,最好不要改動列的位置;
> * **新增的前3列是不會輸出的——`groupBy`,`findBy`,`isGroupByLength`**
> * **列標題被改的列依然會保持原有的位置。**
----
#### 3. 關于 URL
工具提供了是否添加關鍵詞 ID 的選項,如果選址“是”,則給URL的末尾加上關鍵詞 ID ,它的參數以及值:
* 使用的連接符: `&`
* **參數**:可自行設置,默認為 `'mykeyid'`, **ID值**: 由字母和數字組成的字符串,類似:`ckdeqybh702aqsottgbyg7atm`
* ID 唯一性:
1. 同一個關鍵詞的 `pcURL` 和 `ydURL` 的 ID 值是一致的,且在本次執行本工具后輸出的所有 ID 中都是唯一的。
2. 但對比多個賬戶就不一定了(未驗證,如果大家發現不能多賬戶唯一,請反饋給我們。)
>我們覺得 ID 已經足夠長了…… 當然,長并不代表唯一……
* 如果你還有其他的URL參數,請自行補充完整,關鍵詞 ID 只會加到已有URL的末尾。結果類似:`http://www.example.com/a1.html?(你自己定義的部分)&mykeyid=ckdeqybh702aqsottgbyg7atm` ,工具只在最后加。如不需要請選 “否”,也可以后期處理掉。
----
#### 4. 關于精細配置文件的說明
為了能讓生成關鍵詞物料的過程能更加“智能”——讓后期需要我們修正的地方更少!這也意味著我們要寫更加詳細的規則,工具對關鍵詞的【匹配模式】和【出價】兩項配置提供了進一步配置的方法。但編輯CSV文件是一件痛苦的事情——即便大家會在 Excel 這類軟件中先編輯好后另存為CSV文件,在 Excel 中編輯較為復雜的內容會把人逼瘋的,我們還是直接寫程序可直接調用的文件吧——僅支持 `.json` 文件。然后把JSON文件的路徑粘貼到需要精細配置的單元格即可。
> JSON 文件,后綴名:` .json`,不了解的朋友可直接參照示例進行更改即可。很多專業的文本編輯器都提供對JSON文件編輯的支持,錯誤的格式和內容會得到提示,以幫助大家編輯出格式準確的 JSON 文件。
>
> 推薦的編輯器: [Visual Studio Code](https://code.visualstudio.com/Download),其實也有網頁類的編輯器,自行找找。
下面是相關的說明及示例:
<h5 id = "ppms-json">匹配模式精細配置</h5>
關鍵詞的匹配模式是根據詞性來設置的,但這里只提供根據關鍵詞字數作為設置匹配模式的依據。
>如果按某些特定的關鍵詞來劃分倒是容易,但大家再去寫N多的核心詞,豈不是要瘋掉!但這的確是個好點子,也許后續的版本會提供……
JSON 示例:
```
{
"custom":[
["1-5","廣泛匹配"],
["5-8","短語(精確包含)"],
[8,"短語(同義包含)"],
["9-11","短語(核心包含)"],
["11-13","短語(同義包含)"]
],
"default":"精確匹配"
}
```
**說明:**
* 基本格式:`["關鍵詞字數","匹配模式"]`
* `["11-13","短語(同義包含)"]`,表示關鍵詞字數在 `11~13` 之間的關鍵詞(*`不包含字數為 13 的關鍵詞`*),這些詞對應的匹配模式是 `短語(同義包含)`。
* `8`,如果是一個確定的字數可以直接寫數字(可不加雙引號)
* `"default"`:其他沒有在限定字數范圍內的關鍵詞將使用默認匹配方式。例如示例中的沒有定義的關鍵詞將被設置為 `精確匹配`
* 不能更改的內容:鍵:`"custom"`、`"default"`;
* custom 里的條目可以增、減,default 最好設置一個模式,匹配模式留空的話結果將是空白。
* 如果 JSON 格式錯誤,輸出的匹配模式列將會空白。
* 精細配置不是必須的,嫌麻煩可以直接在ppms列中直接寫相應的匹配模式。
* 如果寫了要進行精細配置,記得把JSON文件的完整路徑填入相應的單元格。
* `這個配置并不是全局性的,它只對當前行有效`,也就是說你可以給每個推廣單元(推廣組)單獨寫一份JSON配置文件。
----
<h5 id="chujia-json">出價精細配置說明</h5>
關鍵詞出價的精細控制,僅支持通過匹配模式來設置對應的出價。同樣使用JSON文件配置。
JSON 示例:
```
{
"chujia":[
["精確匹配",2],
["廣泛匹配",3],
["短語(精確包含)",9],
["短語(核心包含)",8],
["短語(同義包含)",5]
]
}
```
**說明:**
* 基本格式:`["匹配模式", 出價]`
* 不能刪的內容:鍵:`chujia`
* 最好把所有匹配模式以及對應的出價都寫好。PS:*變懶了,每多加一個可選項,我們都要做很多事情……,反正也就那么幾個匹配模式*。
* 沒有默認值,格式出錯或者文件路徑錯誤,輸出的結果出價單元格都留空。
* 精細配置不是必須的,嫌麻煩可以直接在` chujia` 列中對應的單元格中直接寫相應的匹配模式。
* 如果寫了要進行精細配置,記得把JSON文件的完整路徑填入相應的單元格。
* `這個配置并不是全局性的,它只對當前行有效`,也就是說你可以給每個推廣單元(推廣組)單獨寫一份JSON配置文件。
----
## BUG 預判(必看)
>預判說明已經發現了,只是……你懂的
手寫CSV還是太要命了……,但從 Excel 導出又會有莫名其妙的東西導致工具不能工作。
建議的步驟:
* 先在 Excel 或者 WPS 表格中編輯好規則文件(`不要有多余的內容`,有些朋友有在空白的地方打草稿的習慣,`.xls`類文件可能沒關系,但對`.csv`文件來說,影響重大)
* 另存為 `'CSV (逗號分隔符)(*.csv)'`或者 `'CSV UTF-8 (逗號分隔符)(*.csv)'` 類型的CSV文件。
* 用文本編輯器打開剛保存的CSV文件。(可能因編碼問題而出現亂碼的情況,請自行調整編碼)
* 觀察第一行,如果有 `column` 字樣的內容,直接把第一行刪掉,然后保存。
* 確保第一行的內容是我們先前說到的那些列標題: `groupBy,findBy,isGroupByLength`……