{
"cells": [
{
"cell_type": "markdown",
"id": "d84b53ca",
"metadata": {},
"source": [
"# 2021.11.25 數位人文社會科學創新教學計畫工作坊\n",
"# Python與其在文件蒐尋及文本分析的應用:一個語言學家的觀點\n",
"\n",
"- 內容大綱:\n",
"1. 介紹Python本體的知識:\n",
" 1. Python物件,包括:字串(string)、數字(number)、表列(list)、有序組(元組,tuple)、字典(dictionary)、集合\n",
" 2. 模組載任(import)\n",
" 3. 迴圈:for、while\n",
" 4. if 條件判斷\n",
" 5. 函式 (function)\n",
"2. 利用正表達式模組(regular expression, re)來進行文件蒐尋\n",
"3. 文件情感分析\n",
"\n",
" \n",
"## 變數、數字(number)、簡單數學運算\n",
"\n",
"- 變數(variable)的作用,有點像是自然語言中的代名詞,作用就是指涉某個事物。\n",
"- 在Python中,變數命名有以下規則:\n",
" 1. 要有意義:方便多人共同開發及/或日後檢視程式碼 (不是Python語言的語法規定)\n",
" 1. 以下為Python的語法規定:\n",
" 1. 必須以英文字母開始\n",
" 1. 變數名稱,只限英數底線及中文,不過,很少用中文來當變數,因為需要英文、中文切換\n",
" 1. 大小寫視為不同\n",
" 1. 避免保留字元,如:print, open, if, while, input, else, and, or等。\n",
"- 在Python中,不需要事先宣告要使用哪些變數及變數的類型(type),只要在要使用某變數時,將值(不限於數值)指派給該變數即可。\n",
"- 為什麼要使用變數?\n",
" 1. 當值很長,而且需要重複使用時\n",
" 1. 某個函式(function)的計算結果,要傳給其他函式使用時\n",
"- 我們來看幾個例子:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "1a5c2f9b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['This', 'is', 'a', 'book.', 'That', 'is', 'a', 'pen']\n",
"2\n"
]
}
],
"source": [
"print('This is a book. That is a pen'.split())\n",
"print('this is a book. That is a pen.'.index('i'))"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "001c03f9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['This', 'is', 'a', 'book.', 'Tha', 'tis', 'a', 'pen.']\n",
"2\n"
]
}
],
"source": [
"string1 = \"This is a book. Tha tis a pen.\"\n",
"print(string1.split())\n",
"print(string1.index(\"i\"))"
]
},
{
"cell_type": "markdown",
"id": "25153b8a",
"metadata": {},
"source": [
"- 沒有規定一個程式中,可以用幾個變數。\n",
"- 只要有必要用變數,就可以使用變數。\n",
"- 你可以把舊的變數指派新值,從該項指派後,那個變數就以新的值的面貌出現,舊的值就與其無關了。\n",
"- 你也可以用 del Var來刪除某變數。但Python並不硬性規定要這樣做。這也是Python為什麼允許:A = A + B 這種看起來有點怪的計算式了。\n",
"- Python中的變數,有幾點要記得:\n",
" 1. 變數只有在指派值之後才存在。故,不需事先宣告變數。\n",
" 1. 變數本身沒有類型(type),變數的值才有類型。故,不需事先宣告變數的類型。\n",
" 1. 變數的名稱,大寫小有別。"
]
},
{
"cell_type": "markdown",
"id": "893ccdf6",
"metadata": {},
"source": [
"### 基本數學運算"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "26aadf56",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"加法: 7\n",
"減法: 12\n",
"乘法: 24\n",
"次方: 8\n",
"次方: 3.0\n",
"除法: 4.0\n",
"除法: 3.3333333333333335\n",
"四捨五入: 3\n",
"取商數: 3\n",
"取餘數: 0\n",
"小數點乘法: 4569.0345\n",
"絕對值: 345\n",
"絕對值: 345\n",
"次方: 1024\n"
]
}
],
"source": [
"print(\"加法:\", 3+4)\n",
"print(\"減法:\", 45-33)\n",
"print(\"乘法:\", 3*8)\n",
"print(\"次方:\", 2**3) # n ** m 是n的m次方的意思\n",
"print(\"次方:\", 9**0.5) # 也可以利用 ** 來做根號運算\n",
"print(\"除法:\", 8/2)\n",
"print(\"除法:\", 10/3)\n",
"print(\"四捨五入:\", round(10/3)) # 四拾五入\n",
"print(\"取商數:\", 10//3) # 只計算商數,不做四拾五入\n",
"print(\"取餘數:\", 0%3) # 取餘數\n",
"print(\"小數點乘法:\", 102.33*44.65) # 小數點也可以\n",
"print(\"絕對值:\", abs(345)) # 絕對值\n",
"print(\"絕對值:\", abs(-345))\n",
"print(\"次方:\", pow(2,10)) # pow(n, m) n的m次方"
]
},
{
"cell_type": "markdown",
"id": "40faef42",
"metadata": {},
"source": [
"### Python數學運算的優先順序 (precedence)\n",
"\n",
"- 在學數學時,大家都學過:先乘除,後加減。這是同一個計算式中,既有乘除又有加減時的計算順序。\n",
"- Python的數學運算也遵守相同的順序。\n",
"- Python的數學運算順序如下:\n",
" 1. 次方\n",
" 2. 乘、除、求餘數、求整數商。如果是這幾個在同一計算式中,則依出現順序計算。\n",
" 3. 加減。如果出現於同一式中,則依出現順序計算。\n",
"- 可以使用圓括號(小括號)來強制優先運算。"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "1d680bf5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"11\n",
"375.0\n",
"15\n",
"0.0\n",
"21\n",
"512\n"
]
}
],
"source": [
"print(2+3*3)\n",
"print(100/2*30//4)\n",
"print((2+3)*3)\n",
"print(100/(2*30)//4)\n",
"print(2**4+5)\n",
"print(2**(4+5))\n"
]
},
{
"cell_type": "markdown",
"id": "78958da5",
"metadata": {},
"source": [
"## math 模組\n",
"\n",
"- Python一個很強大的優勢,就是有很多很多的模組可以很快地、很簡單地處理很多的工作。\n",
"- 有些模組是內建的,也就是你下載Python時就有了,有些則要在需要時另外下載安裝。\n",
"- math就是一個內建的數學模組,可以簡單地做很多數學運算。\n",
"- 你可以在:https://docs.python.org/3.7/library/math.html 找到math這個模組的所有可使用的函式(function)。\n",
"- 看以下幾個簡單的例子:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "0aef3f5a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10.0\n",
"625.0\n",
"3628800\n"
]
}
],
"source": [
"import math # 模組需要載入才能使用\n",
"\n",
"print(math.sqrt(100)) # 平方根\n",
"print(math.pow(5, 4)) # math.pow(n, m) 計算 n 的 m 次方\n",
"print(math.factorial(10)) # math.factorial(n) 計算 n 的階層 (n!)\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "1562f1d0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3\n",
"-4\n",
"3\n",
"3\n"
]
}
],
"source": [
"print(math.floor(3.5))\n",
"print(math.floor(-3.5)) # math.floor(n)回傳比n小或等於n的整數\n",
"print(math.trunc(3.2))\n",
"print(math.trunc(3.7)) # 無條件捨去"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "11b238cd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3\n",
"4\n",
"4.553\n"
]
}
],
"source": [
"print(round(3.2))\n",
"print(round(3.7)) # 四拾五入,round()不在math模組中!\n",
"print(round(4.553421, 3)) # 取到小數第三位"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "80f4ba03",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3.141592653589793\n",
"2.718281828459045\n"
]
}
],
"source": [
"print(math.pi) # 還有一些內建的、數學上常用到的常數\n",
"print(math.e)"
]
},
{
"cell_type": "markdown",
"id": "df8f02d0",
"metadata": {},
"source": [
"### 練習一下\n",
"\n",
"1. 假設你收集到一個小baby說的六個句子:up、come up、play ball、come play ball、daddy come play ball、daddy play ball、daddy play too。你想要計算一下這個baby的 MLU (Mean Length of Utterance)。你應該怎麼做?(使用下面Excercise 1的部份程式碼)\n",
" 1. 如果你的MLU要取到小數點下兩位,四捨五入,該怎麼做?\n",
" 2. 如果你的MLU要小數點下無條件捨去,該怎麼做?\n",
"2. 假設你有一篇英文短文,你想要計算the佔整篇短文字數的百分比,應該怎麼做?(使用Exercise 2的部份程式碼) 四取五入,取到小數點第四位。"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "504c6ccd",
"metadata": {},
"outputs": [],
"source": [
"# Ex. 1\n",
"\n",
"import math\n",
"\n",
"utter1 = ['up']\n",
"utter2 = ['come', 'up']\n",
"utter3 = ['play', 'ball']\n",
"utter4 = ['come', 'play', 'ball']\n",
"utter5 = ['daddy', 'come', 'play', 'ball']\n",
"utter6 = ['daddy', 'play', 'ball']\n",
"utter7 = ['daddy', 'play', 'too']\n",
"\n",
"lenUtter1 = len(utter1) # 用len()來取得一個成員有順序的物件的成員個數\n",
"print(lenUtter1)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "28c3154f",
"metadata": {},
"outputs": [],
"source": [
"# Exercise 2\n",
"\n",
"#from nltk.tokenize import word_tokenize\n",
"\n",
"article = \"The government’s travel notice for South Korea has been raised to a level 3 “warning” — avoid all nonessential travel — due to a jump in the number of COVID-19 cases there, the Central Epidemic Command Center (CECC) said yesterday, adding that two more cases have been confirmed in Taiwan. The community spread of the virus in South Korea has been shown by the rapid increase in confirmed cases in the past few days, which totaled 763 yesterday, Minister of Health and Welfare Chen Shih-chung (陳時中) said.“As the risk of infection is elevated in the country, the center decided to raise the travel notice to level 3,” said Chen, who serves as the center’s head. “We recommend people avoid all nonessential travel.”\"\n",
"\n",
"#words = word_tokenize(article)\n",
"\n",
"words = ['The', 'government', '’', 's', 'travel', 'notice', 'for', 'South', 'Korea', 'has', 'been', 'raised', 'to', 'a', 'level', '3', '“', 'warning', '”', '—', 'avoid', 'all', 'nonessential', 'travel', '—', 'due', 'to', 'a', 'jump', 'in', 'the', 'number', 'of', 'COVID-19', 'cases', 'there', ',', 'the', 'Central', 'Epidemic', 'Command', 'Center', '(', 'CECC', ')', 'said', 'yesterday', ',', 'adding', 'that', 'two', 'more', 'cases', 'have', 'been', 'confirmed', 'in', 'Taiwan', '.', 'The', 'community', 'spread', 'of', 'the', 'virus', 'in', 'South', 'Korea', 'has', 'been', 'shown', 'by', 'the', 'rapid', 'increase', 'in', 'confirmed', 'cases', 'in', 'the', 'past', 'few', 'days', ',', 'which', 'totaled', '763', 'yesterday', ',', 'Minister', 'of', 'Health', 'and', 'Welfare', 'Chen', 'Shih-chung', '(', '陳時中', ')', 'said.', '“', 'As', 'the', 'risk', 'of', 'infection', 'is', 'elevated', 'in', 'the', 'country', ',', 'the', 'center', 'decided', 'to', 'raise', 'the', 'travel', 'notice', 'to', 'level', '3', ',', '”', 'said', 'Chen', ',', 'who', 'serves', 'as', 'the', 'center', '’', 's', 'head', '.', '“', 'We', 'recommend', 'people', 'avoid', 'all', 'nonessential', 'travel', '.', '”']\n",
"\n",
"articleLeng = len(article)\n",
"\n",
"numThe = words.count('the')"
]
},
{
"cell_type": "markdown",
"id": "d109f07e",
"metadata": {},
"source": [
"## 字串 (string)\n",
"\n",
"- 字串是由一連串的字元(characters)所構成的物件,字元本身沒有意義。\n",
"- 字串中的字元可以是:羅馬字母、數字、鍵盤上的許多功能鍵,如空白鍵、enter鍵等,或是世界上任何語言的字母、文字(如:漢語中的方塊字)\n",
"- 在 Python 中,字串的標示為:引號,可以單引號、雙引號、三個單/雙引號。"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "a448595b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"14\n",
"26\n",
"81\n"
]
}
],
"source": [
"s1 = 'this is a book'\n",
"s2 = \"that's a pen, not a pencil\"\n",
"s3 = ''' this is a book. # 使用三個單/雙引號,可以換行\n",
"not a pen. That is a pen, \n",
"not a pencil'''\n",
"\n",
"print(len(s1)) # 可以用len()來求取字串長度(=有幾個字元)。\n",
"print(len(s2)) # 注意:這個長度包含了所有字元,包括:空白、標點、特別符號等。\n",
"print(len(s3))\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "7da5e194",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this this \n",
"this is a book\n",
"5134\n",
"4456678\n"
]
}
],
"source": [
"print('this '* 50) # 用乘的符號來做(整個)字串重複\n",
"print('this ' + 'is a book') # 用加的符號來做字串前後相連\n",
"print(4456+678) # 注意數字加法與字串\"加法\"的不同!\n",
"print('4456'+'678')"
]
},
{
"cell_type": "markdown",
"id": "2f738a37",
"metadata": {},
"source": [
"### 字串位址(index)\\[索引\\]與切段(slicing)\n",
"\n",
"- 字串是一種成員順序有關係的Python物件,也就是,成員順序不同,會產不同的字串。\n",
"- 同樣是成員順序有關係的Python物件有:表列(list)、有序組(tuple)\n",
"- 既然成員順序是有關係的,我們可以利用成員的位址(index)來直接取得該成員。\n",
"- 也可以用切段(slicing)的方式,取得字串中某一小段的成員。\n",
"- 如:"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "d583c304",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"J\n",
"62\n",
".\n",
".\n",
"hn s\n",
"John saw a\n",
"ith a stick.\n",
"J iw\n",
".ct twybathya e\n",
"\n"
]
}
],
"source": [
"s = 'John saw a girl with a telescope; Mary hit a boy with a stick.'\n",
"print(s[0]) # 用方括號來標示位址,位址以 0 開始!\n",
"print(len(s))\n",
"print(s[61]) # 最後一個字元的位址是長度-1\n",
"print(s[-1]) # 也可以用 -1 來代表最後一個字元\n",
"print(s[2:6]) # 從位圵2到位址5;string[n:m] 從位址 n 到位址 m-1\n",
"print(s[:10]) # 冒號前留白,表示從頭開始\n",
"print(s[50:]) # 冒號後留白,表到取到最後一個字元\n",
"print(s[0:20:4]) # 每隔3個字元取一個字元,取到位址19的字元\n",
"print(s[61:30:-2]) # 從最後一個字元開始,往前取,每隔一個字元取一個字元\n",
"print(s[30:60:-2]) # 使用負號來做反向選取,前面的位址亦需反向標明 (因為沒有結果,故印出的是空白行)"
]
},
{
"cell_type": "markdown",
"id": "1a543916",
"metadata": {},
"source": [
"### 字串方法 (string method)\n",
"\n",
"- Python提供了處理字串的一些方便、快速的功能,這些叫:字串方法 (string method)。\n",
"- 你可以用 help('') 來列出所有的字串方法。註:''是空字串,一個沒有任何字元的字串;' '是一個長度為1的字串,其只包括一個字元:空白。\n",
"- 使用字串方法的格式:要處理的字串.方法()\n",
"- 查詢所有字串方法:help('')"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "26ade45e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Phonotactics\n",
"PHONOTACTICS\n",
"this is a book\n"
]
}
],
"source": [
"s5 = 'phonotactics'\n",
"print(s5.capitalize()) # 第一個字母大寫\n",
"print(s5.upper()) # 全部字母大寫\n",
"print('THIS IS A book'.lower()) # 把大寫字母變小寫\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "3ac7694d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2\n",
"1\n",
"True\n",
"True\n",
"False\n"
]
}
],
"source": [
"print(s5.count('o')) # 計算特定字串中的某個字元出現的次數\n",
"print(s5.count('o', 0, 4)) # 可以計算指定特定字串中的次字串中某字元出現的次數\n",
"print(s5.endswith('s')) # 判斷某字串是否以特定某個/些字元結束\n",
"print(s5.endswith('cs'))\n",
"print(s5.endswith('c'))"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "60b21f4d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"True\n",
"True\n",
"False\n",
"False\n",
"False\n",
"True\n",
"False\n"
]
}
],
"source": [
"print(s5.isalnum()) # 判斷字串是否為字母或/及數字\n",
"print('052720411CCU'.isalnum())\n",
"print(' '.isalnum()) # 空白不是字母或數字\n",
"print('this is a book'.isalnum())\n",
"print('this\\tis'.isalnum())\n",
"print('你好嗎'.isalnum()) # 中文字視為字母\n",
"print('你好嗎?'.isalnum()) # 全形標點不是字母\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "2a892bb1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"True\n",
"False\n",
"False\n",
"True\n",
"False\n",
"True\n"
]
}
],
"source": [
"print('this is a book.'.isascii()) # 判斷是否為 ASCII 字元 (編碼號碼在 128 之前),空白換行什麼的都算\n",
"print('你好嗎'.isascii()) # 中文字不是 ASCII\n",
"print('8.45'.isdecimal()) # 小數點不是,整數才是 \n",
"print('897'.isdecimal())\n",
"print('4.56'.isdigit()) # 判斷字串是否都是數字,不能有數字以外的字元\n",
"print('456'.isdigit())"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "ee3972c7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"True\n",
"False\n",
"True\n",
"False\n",
"this is a book\n"
]
}
],
"source": [
"print('THIS'.isupper()) # 判斷字串中的字元是否全為大寫\n",
"print('This'.isupper())\n",
"print('this'.islower()) # 判斷字串中的字元是否全為小寫\n",
"print('This'.islower())\n",
"print(' '.join(['this', 'is', 'a', 'book'])) # 把一個表列或有序組成員組合成一個完整字串"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "d7e5a88f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"is is a book\n",
"This is a book\n",
"this is a book\n",
" this is a book\n"
]
}
],
"source": [
"print('This is a book'.lstrip('Th')) # 剝掉最左邊的指定字元,如果最左邊沒有指定的字元,則回傳原字串\n",
"print('This is a book'.lstrip('a')) # 另有一個 .strip(),功能相同,只是處理最右邊的字元\n",
"print(' this is a book'.lstrip()) # 如果沒有指定要剝除的字元,則會刪除空白、tab、換行等字元\n",
"print(' this is a book '.rstrip()) # .rstrip()作用與上同,只是是剝右邊的"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "5dfdabbc",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['this', 'is', 'a', 'book']\n",
"['ph', 'n', 'tactics']\n",
"['This is a book.', 'That is a pen.', 'Weird Stuff.']\n"
]
}
],
"source": [
"print('this is a book'.split()) # 未標示分隔字元,則依空白分割字串。注意:有n個空白就可以分出n+1個字串\n",
"print('phonotactics'.split('o')) # 把 o 之前、之後的拆出獨立成字串,但o本身不會出現,輸出是一個字串構成的表列\n",
"print('This is a book.\\nThat is a pen.\\nWeird Stuff.'.splitlines()) # 依換行符號做分割,回傳一個表列"
]
},
{
"cell_type": "markdown",
"id": "ebb86b61",
"metadata": {},
"source": [
"### 練習\n",
"\n",
"1. 下面的EngNews是一段從USA Today上擷取的新聞,已經以字串類型指派給EngNews這個變數。請執行下面動作:
\n",
" (1) 將這則新聞拆成一個一個的詞,以表列形式儲存。
\n",
" (2) 將這則新聞拆成一行一行,以表列形式儲存。
\n",
" (3) 將上面拆出的第一行,變為標題格式。(註:表列與字串相同,可以位址來取得成員。第一行的位址是...?)
\n",
" (4) 把第二行的右邊about.刪除,左邊的During也刪除。
\n",
" (5) 對第三行做以下工作:(a) 是不是以 I 開始?(b) 是不是由字母或數字組成? (c) 是不是ASCII? (d) 通通轉為大寫\n",
"1. 假設我們有以下三個字串:張三李四、張三101李四、張三John,怎麼可以判斷,那個字串只包含漢字?"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7d87b900",
"metadata": {},
"outputs": [],
"source": [
"EngNews = '''Trump asks for payroll tax relief despite GOP hesitance\n",
"During his Wednesday night speech, Trump asked that Congress consider payroll tax cuts – a request that lawmakers in both parties have voiced concern about. \n",
"\n",
"\"I am calling on Congress to provide Americans with immediate payroll tax relief,\" Trump said. \"Hopefully, they will consider this very strongly. We are at a critical time in the fight against the virus.\"\n",
"\n",
"The idea has been met with skepticism in recent days from even Republicans, who call the idea both premature and something that would not help in this situation. \n",
"\n",
"\"I would prefer they exercise other options before going down that path,\" Sen. John Thune, the No. 2 Republican in the Senate has said. Democrats have said the idea is something that would have no chance in passing the Democratic-held House. \n",
"\n",
"\"It's a non-starter,\" Majority Leader Steny Hoyer, the No. 2 Democrat in the House said earlier Wednesday of the payroll tax cut idea. '''"
]
},
{
"cell_type": "markdown",
"id": "75416d5e",
"metadata": {},
"source": [
"## 表列 (list) \\[串列\\]\n",
"\n",
"- 表列(list)是Python中使用頻率很高的一種結構,用來儲存資料供運算,或是儲存運算之後的資料。\n",
"- 表列由方括號 \\[\\]標示,其中的成員由逗號(,)分隔。表列的成員是有順序性的,也就是相同成員、但成員排列順序不同,是不同表列。\n",
"- 表列的成員沒有類型的限制,也沒有類型一致性的要求。也就是說,任何Python類型的物件都可以做為表列的成員。而表列的成員,也不需要在類型上一致,也就是說,表列的成員不需要是相同類型。\n",
"- 注意:\n",
" 1. 字串的基本單位是字元,而表列的基本單位是由逗點隔開的成員。這點在做for迴圈時,會有不同。\n",
" 1. 表列是mutable,意思是:可以立刻改變其所構成的成份 (= in-place change),而字串是immutable,也就是不能改變其構成成份。\n",
"- 如: "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "228b03c3",
"metadata": {},
"outputs": [],
"source": [
"# 以下都是合法的表列\n",
"\n",
"L1 = ['this', 'is', 'a', 'book']\n",
"L2 = [98, 66, 54, 60, 78, 80]\n",
"L3 = ['Allen Smith', 45, 34000, 'assistant manager']\n",
"L4 = [[1,2,3], \n",
" [4,5,6], \n",
" [7,8,9]]"
]
},
{
"cell_type": "markdown",
"id": "37cc1347",
"metadata": {},
"source": [
"### 表列的位址(index)與切片(slicing)\n",
"\n",
"- 因表列是有順序性的,故可以使用位址和切片來取得其成員,與字串相同。\n",
"- 見下例。"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "63a844fe",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1: ['t', 'h', 'i', 's', 'i', 's', 'a', 'b', 'o', 'o', 'k', ',', 'n', 'o', 't', 'a', 'p', 'e', 'n']\n",
"2: 19\n",
"3: t\n",
"4: o\n",
"5: n\n",
"6: p\n",
"7: ['t', 'h', 'i', 's', 'i', 's', 'a', 'b']\n",
"8: ['t', 'a', 'p', 'e', 'n']\n",
"9: ['t', 'i', 'i', 'a', 'o']\n",
"10: ['n', 'a', 'n', 'o']\n",
"11: True\n",
"12: False\n",
"13: True\n",
"\n"
]
}
],
"source": [
"L = list('thisisabook,notapen')\n",
"\n",
"demos = [L, len(L), L[0], L[13], L[-1], L[-3], L[:8], L[14:], L[:10:2], L[-1:6:-3], 'o' in L, 'z' in L, 'z' not in L]\n",
"\n",
"counter = 1\n",
"\n",
"for demo in demos:\n",
" print(f\"{counter}: {demo}\")\n",
" counter+=1\n",
"'''\n",
"print(L)\n",
"print(len(L)) # 表列 L 的長度(=有幾個成員)\n",
"print(L[0]) # 第一個(位址 0)的成員\n",
"print(L[13]) # 第十四個(位位 13)的成員\n",
"print(L[-1]) # 最後一個成員\n",
"print(L[-3]) # 倒數第三個成員\n",
"print(L[:8]) # 從第一個到第八個(位址 7)成員,回傳一個表列\n",
"print(L[14:]) # 從第十五個成員(位址 14)到最後一個,回傳一個表列\n",
"print(L[:10:2]) # 從頭到第十個成員(位址 9),每隔一個取一個,回傳表列\n",
"print(L[-1:6:-3]) # 從最後一個往前到位址(6+1)的成員,每個 2 個取 1 個,傳回一個順序與 L 相反的表列。\n",
"print('o' in L) # 檢測某個成份是否為 L 的成員,回傳布林值\n",
"print('z' in L)\n",
"print('z' not in L)\n",
"'''\n",
"print()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "2c83654b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1: [1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49, 52, 55, 58, 61, 64, 67, 70, 73, 76, 79, 82, 85, 88, 91, 94, 97]\n",
"2: 97\n",
"3: 1\n",
"4: 1617\n",
"\n"
]
}
],
"source": [
"# 一些可以作用於成員為數值的表列的函式\n",
"\n",
"L2 = list(range(1,100,3))\n",
"\n",
"counter = 1\n",
"for f in [L2, max(L2), min(L2), sum(L2)]:\n",
" print(f\"{counter}: {f}\")\n",
" counter+=1\n",
"''' \n",
"print(L2)\n",
"print(max(L2)) # 取得表列中的最大值\n",
"print(min(L2)) # 取得表列中的最小值\n",
"print(sum(L2)) # 把表列的值都加起來\n",
"print(max(L)) # 如果表列的成員是字串,則最大、最小值依表列成員的內碼決定\n",
"print(min(L))\n",
"'''\n",
"print()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "fae4b621",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['John', 56, 'Mary', 49, 'Susan', 87, 'Mark', 88]\n",
"['John Smith', 56, 'Mary', 49, 'Susan', 87, 'Mark', 88]\n",
"['John Smith', 56, 'Mary Carl', 80, 'Susan', 87, 'Mark', 88]\n"
]
},
{
"ename": "IndexError",
"evalue": "list assignment index out of range",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m~\\AppData\\Local\\Temp/ipykernel_6468/1333471394.py\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[0mL3\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;36m4\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;34m'Mary Carl'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m80\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;31m# 可以改變一個切片的值\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mL3\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 9\u001b[1;33m \u001b[0mL3\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m8\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m'Jack'\u001b[0m \u001b[1;31m# 但是,不能使用超過其長度的位址,也就是,如果要把新加到 L3 之後,要用其他方法\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 10\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mL3\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mIndexError\u001b[0m: list assignment index out of range"
]
}
],
"source": [
"# 更改表列成員:表列允許直接改變其成員,而不會產成新的表列\n",
"\n",
"L3 = ['John', 56, 'Mary', 49, 'Susan', 87, 'Mark', 88]\n",
"print(L3)\n",
"L3[0] = 'John Smith' # 直接改變第一個成員的值\n",
"print(L3)\n",
"L3[2:4] = ['Mary Carl', 80] # 可以改變一個切片的值\n",
"print(L3)\n",
"L3[8] = 'Jack' # 但是,不能使用超過其長度的位址,也就是,如果要把新加到 L3 之後,要用其他方法\n",
"print(L3)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "ae4631d1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['趙敏', '小昭', '周芷若', '阿離', '郭襄', '完顏萍', 1, 2, 3, 4, 5]\n",
"['趙敏', '小昭', '周芷若', '阿離', '郭襄', '完顏萍', '趙敏', '小昭', '周芷若', '阿離', '郭襄', '完顏萍']\n",
"[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]\n",
"['趙敏', '小昭', '周芷若', '郭襄', '完顏萍']\n",
"[5]\n",
"The original L4 is: ['趙敏', '小昭', '周芷若', '阿離', '郭襄', '完顏萍']\n",
"the processed L4 (newL4) is: ['趙敏', '阿離', '郭襄', '完顏萍']\n"
]
}
],
"source": [
"L4 = ['趙敏', '小昭', '周芷若', '阿離', '郭襄', '完顏萍']\n",
"L5 = [1,2,3,4,5]\n",
"print(L4+L5) # 用 + 來把兩個表列前後相接\n",
"print(L4*2) # 用 * 來重覆表列的成員\n",
"print(L5*3)\n",
"\n",
"# 注意:用 + 或 * 來運作於兩個表列,會產生一個新的表列\n",
"# 如果你需要用到這兩個運作的成果,必須將其指派給一個變數,\n",
"# 如:L45 = L4 + L5\n",
"\n",
"del L4[3] # 刪除表列內的某個成員\n",
"print(L4)\n",
"\n",
"del L5[:4] # 也可以刪除表列中的一個切片\n",
"print(L5)\n",
"\n",
"# 注意:因為刪除成員後,對電腦而言,那個成員就好像從未存在過一樣\n",
"# 所以,如果要對表列做任何運作(包括但不限於刪除),不妨把原來表列\n",
"# 複制一份,所有動作都做在複制版上,保留原始表列。\n",
"\n",
"L4 = ['趙敏', '小昭', '周芷若', '阿離', '郭襄', '完顏萍']\n",
"newL4 = L4[:]\n",
"del newL4[1:3]\n",
"print('The original L4 is:', L4)\n",
"print('the processed L4 (newL4) is:', newL4)"
]
},
{
"cell_type": "markdown",
"id": "57711fb2",
"metadata": {},
"source": [
"### 表列方法 (method)\n",
"\n",
"- 每種Python物件類型都有其自己的方法(method),可以對該類型的物件做處理。\n",
"- 我們見過字串方法了。現在來看看表列方法:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "5956f3e9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['趙敏', '小昭', '周芷若', '阿離', '郭襄', '完顏萍']\n",
"['趙敏', '小昭', '周芷若', '阿離', '郭襄', '完顏萍', '程靈素']\n",
"None\n",
"['趙敏', '小昭', '周芷若', '阿離', '郭襄', '完顏萍', '程靈素', '胡若蘭', '胡若蘭', '駱冰', '阿碧']\n",
"[]\n",
"['趙敏', '小昭', '周芷若', '阿離', '郭襄', '完顏萍']\n"
]
}
],
"source": [
"L4 = ['趙敏', '小昭', '周芷若', '阿離', '郭襄', '完顏萍']\n",
"print(L4)\n",
"\n",
"L4.append('程靈素') # 把新成員附加到原表列的末端\n",
"print(L4)\n",
"print(L4.append('胡若蘭')) # .append()直接改變了表列的內容,並未回傳新表列,故用print()無法印出任何東西\n",
"L4.extend(['胡若蘭', '駱冰', '阿碧']) # 表一個表列的成員附加於另一表列之末 \n",
"print(L4)\n",
"L4.clear() # 刪除表列中所有成員\n",
"print(L4)\n",
"L4 = ['趙敏', '小昭', '周芷若', '阿離', '郭襄', '完顏萍']\n",
"L5 = L4.copy() # 如果表列的內容較複雜(如,包含多層的表列),則不適用\n",
"print(L5)\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "95971dcf",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3\n",
"['趙敏', '小昭', '周芷若', '任盈盈', '阿離', '郭襄', '完顏萍']\n",
"完顏萍\n",
"['趙敏', '小昭', '周芷若', '阿離', '郭襄']\n",
"阿離\n",
"['趙敏', '小昭', '周芷若', '郭襄']\n",
"['趙敏', '小昭', '郭襄']\n",
"['郭襄', '小昭', '趙敏']\n"
]
}
],
"source": [
"print(L4.index('阿離')) # 取得第一個指定成員的位址 (只有第一個哦!)\n",
"L4.insert(3, '任盈盈') # 在指定位址插入新成員,原成員往後移\n",
"print(L4)\n",
"print(L5.pop()) # .pop()移除某一特定位址的成員,沒標明位址,則移除最後一個 \n",
"print(L5) # .pop()會回傳被刪除的成員\n",
"print(L5.pop(3))\n",
"print(L5)\n",
"\n",
"L5.remove('周芷若') # .remove()指定要移除的成員的第一個。注意:不回傳任何值!\n",
"print(L5)\n",
"\n",
"L5.reverse() # .reverse()直接把表列成員顛倒\n",
"print(L5)\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "f72483f2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[3, 5, 11, 12, 34, 56, 65, 99]\n",
"[99, 65, 56, 34, 12, 11, 5, 3]\n",
"['t', 'h', 'i', 's', 'i', 's', 'a', 'b', 'o', 'o', 'k', ',', 'n', 'o', 't', 'a', 'p', 'e', 'n']\n",
"[',', 'a', 'a', 'b', 'e', 'h', 'i', 'i', 'k', 'n', 'n', 'o', 'o', 'o', 'p', 's', 's', 't', 't']\n"
]
}
],
"source": [
"L6 = [34, 56, 12, 11, 3, 5, 99, 65]\n",
"L6.sort()\n",
"print(L6) # .sort()將表列中的值由小到大排列\n",
"L6 = [34, 56, 12, 11, 3, 5, 99, 65]\n",
"L6.sort(reverse=True) # 標明 reverse = True,則由大排到小\n",
"print(L6)\n",
"\n",
"print(L)\n",
"L.sort() # 如果表列的內容是字串,則依字串的內碼大小排列\n",
"print(L)\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "bd619c90",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3\n",
"['abc', 'ABC', 'ABc', 'AbC', 'aBC', 'Abc']\n",
"['ABC', 'ABc', 'AbC', 'Abc', 'aBC', 'abc']\n",
"['abc', 'aBC', 'Abc', 'AbC', 'ABc', 'ABC']\n"
]
},
{
"data": {
"text/plain": [
"[3, 5, 11, 12, 34, 56, 65, 99]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"LL = list('thisisabooknotapenthatisapennotabook')\n",
"print(LL.count('i')) # .count()可以計算某成員出現的次數\n",
"\n",
"L7 = ['abc', 'ABC', 'ABc', 'AbC', 'aBC', 'Abc']\n",
"print(L7)\n",
"L7.sort()\n",
"print(L7)\n",
"L7 = ['abc', 'ABC', 'ABc', 'AbC', 'aBC', 'Abc']\n",
"L7.sort(reverse=True)\n",
"print(L7)\n",
"\n",
"L6 = [34, 56, 12, 11, 3, 5, 99, 65]\n",
"sorted(L6) # 也可以直接用內建的 sorted() 來做排序"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "a5c245c9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Type of enumerate object: \n",
"轉成表列: [(0, 'coffee'), (1, 'tea'), (2, 'wine'), (3, 'coke')]\n",
"轉成表列: [(10, 'coffee'), (11, 'tea'), (12, 'wine'), (13, 'coke')]\n"
]
}
],
"source": [
"# 可以用enumerate()把位址與該位址的物件包裹成(位址,物件)的有序組\n",
"\n",
"drinks = ['coffee', 'tea', 'wine', 'coke']\n",
"enumerate_drinks = enumerate(drinks)\n",
"print('Type of enumerate object: ', type(enumerate_drinks))\n",
"print('轉成表列:', list(enumerate_drinks))\n",
"\n",
"e_drinks02 = enumerate(drinks, start = 10) # 指定起始位址\n",
"print('轉成表列:', list(e_drinks02))"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "667dc5a2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"全大寫字串有: ['AAA', 'ZZZ', 'LKD', 'IHJ']\n",
"全小寫字串有: ['cde', 'fds', 'wdk', 'kid']\n"
]
}
],
"source": [
"# 因為表列可以當場改變其成員而不會產生新表列,\n",
"# 故表列常使用來儲存程式一步一步的產生的結果\n",
"\n",
"# 如:我有一個表列,成員有的是全大寫,有的是全小寫,\n",
"# 我想把全大寫及全小寫的成員分開,要怎麼做?\n",
"\n",
"L8 = ['AAA', 'cde', 'ZZZ', 'fds', 'LKD', 'wdk', 'IHJ', 'kid']\n",
"\n",
"capitals = [] # 先指定兩個空表列給兩個變數,用來儲存待會兒判斷的結果\n",
"lowers = []\n",
"\n",
"for s in L8:\n",
" if s.isupper():\n",
" capitals.append(s)\n",
" if s.islower():\n",
" lowers.append(s)\n",
" \n",
"print('全大寫字串有:', capitals)\n",
"print('全小寫字串有:', lowers)\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "0d2b0ad3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"this\n",
"a\n",
"not\n",
"book\n",
"do\n",
"know\n"
]
}
],
"source": [
"# 不要在對表列進行for迴圈時做任何增減成員的動作\n",
"# 因為for迴圈是對表列的每個成員做某些運算,\n",
"# 如果你增減成員,會造成問題。\n",
"\n",
"l = 'this is a pen not a book I do not know'.split()\n",
"\n",
"for w in l:\n",
" print(w)\n",
" l.pop(0) # 每進行一次就刪除位址為0的成員\n",
" # 結果如下。因為:在進行移除之後,\n",
" # 下一次詞變成第一個,但第一個已處理過,\n",
" # 故處理下一個。這就是為什麼結果是跳一個的原因"
]
},
{
"cell_type": "markdown",
"id": "c3c22596",
"metadata": {},
"source": [
"### 上課小練習\n",
"\n",
"1. 請用表列列出10個你想去玩的地方的英文地名,並執行:\n",
" 1. 列出這10個地方(以表列形式)\n",
" 1. 反向列出這10個地方\n",
" 1. 由小排到大\n",
" 1. 由大排到小\n",
" 1. 在第一個位置加入Antartic,最後一個位置加入:Arctic See\n",
" 1. 在中央的位置加入Chicago\n",
" 1. 分別刪除第3筆及第9筆資料\n"
]
},
{
"cell_type": "markdown",
"id": "a8504f45",
"metadata": {},
"source": [
"### 字典 (dictionary)\n",
"\n",
"- 字典是一種與字串、表列、有序組很不同的資料類型:\n",
" 1. 其成員是 關鍵字(key):值(value) 這種配對的組合,以冒號隔開\n",
" 1. 字典的成員沒有順序,也就是不能以位址(index)及切片來取得其內容\n",
" 1. 如果要取得字典的內容,必須使用關鍵字。\n",
" 1. 長度不限,內容不需具同質性,可以有任意的巢狀包孕(字典的配對組的值可以是字典)\n",
" 1. 字典以大括號標示。\n",
" 1. 同一個字典中,關鍵字只能有一個,值則沒有限制\n",
"- 但是,字典與表列有一點相同處:都可以立刻改變字典的內容 (mutable)\n",
"- mutable vs. immutable\n",
" 1. mutable: 表列、字典\n",
" 1. immutable: 數值(number)、字串、有序組\n",
"- 例如:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "5757e1f6",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1: ['組長', 25000, 5]\n",
"2: 組長\n",
"3 (d的長度): 7\n",
"4 (王五在不在d中): True\n",
"5 (100在不在d中): False\n",
"6: 輕功\n",
"7: {'張三': ['經理', 35000, 7], '李四': ['組長', 25000, 5], '王五': ['業務', 22000, 2], '趙六': ['網管', 22000, 1], '孫七': ['程式設計師', 27000, 5], '王九': 100, '韋一笑': {'綽號': '青翼蝠王', '職位': '護教法王', '絕技': '輕功'}}\n",
"8: {'張三': ['經理', 35000, 7], '李四': ['組長', 25000, 5], '王五': ['業務', 22000, 2], '趙六': ['網管', 22000, 1], '孫七': ['程式設計師', 27000, 5], '王九': '無名小卒', '韋一笑': {'綽號': '青翼蝠王', '職位': '護教法王', '絕技': '輕功'}}\n",
"9: {'張三': ['經理', 35000, 7], '李四': ['組長', 25000, 5], '王五': ['業務', 22000, 2], '趙六': ['網管', 22000, 1], '孫七': ['程式設計師', 27000, 5], '韋一笑': {'綽號': '青翼蝠王', '職位': '護教法王', '絕技': '輕功'}}\n"
]
}
],
"source": [
"d = {'張三':['經理', 30000, 7], '李四':['組長', 25000, 5], '王五':['業務', 22000, 2], '趙六':['網管', 22000, 1], \n",
" '孫七':['程式設計師', 27000, 5], '王九': 100, '韋一笑':{'綽號':'青翼蝠王', '職位':'護教法王', '絕技':'輕功'}}\n",
"print('1: ', d['李四'])\n",
"print('2: ', d['李四'][0]) # 因為值為表列,故可使用indexing來取得表列內容\n",
"print('3 (d的長度): ', len(d))\n",
"print('4 (王五在不在d中): ', '王五' in d) # 可以問關鍵字在不在某字典中\n",
"print('5 (100在不在d中): ', 100 in d) # 把 100 當關鍵字看待,故為 False\n",
"print('6: ', d['韋一笑']['絕技']) # 因為\"韋一笑\"的值又是個字典,故可以再用關鍵字來取得包孕的字典裏的值\n",
"d['張三'][1] = 35000 # 直接改變值(為表列)的內容\n",
"print('7: ', d)\n",
"d['王九'] = \"無名小卒\" # 直接改變值\n",
"print('8: ', d)\n",
"del d['王九'] # 刪除一個配對\n",
"print('9: ', d)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "2dedaca1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1: {}\n",
"\n",
"2: {'張三': ['經理', 30000, 7], '李四': ['組長', 25000, 5], '王五': ['業務', 22000, 2], '趙六': ['網管', 22000, 1], '孫七': ['程式設計師', 27000, 5], '王九': 100, '韋一笑': {'綽號': '青翼蝠王', '職位': '護教法王', '絕技': '輕功'}}\n",
"\n",
"3: {'綽號': '青翼蝠王', '職位': '護教法王', '絕技': '輕功'}\n",
"\n",
"4: None\n",
"\n",
"5: dict_items([('張三', ['經理', 30000, 7]), ('李四', ['組長', 25000, 5]), ('王五', ['業務', 22000, 2]), ('趙六', ['網管', 22000, 1]), ('孫七', ['程式設計師', 27000, 5]), ('王九', 100), ('韋一笑', {'綽號': '青翼蝠王', '職位': '護教法王', '絕技': '輕功'})])\n",
"\n",
"6: dict_keys(['張三', '李四', '王五', '趙六', '孫七', '王九', '韋一笑'])\n",
"\n",
"6-2: dict_values([['經理', 30000, 7], ['組長', 25000, 5], ['業務', 22000, 2], ['網管', 22000, 1], ['程式設計師', 27000, 5], 100, {'綽號': '青翼蝠王', '職位': '護教法王', '絕技': '輕功'}])\n",
"\n",
"7: {'張三': ['經理', 30000, 7], '李四': ['組長', 25000, 5], '王五': ['業務', 22000, 2], '趙六': ['網管', 22000, 1], '孫七': ['程式設計師', 27000, 5], '韋一笑': {'綽號': '青翼蝠王', '職位': '護教法王', '絕技': '輕功'}}\n",
"\n",
"8: 沒這個關鍵字哦!\n",
"\n",
"9: ('韋一笑', {'綽號': '青翼蝠王', '職位': '護教法王', '絕技': '輕功'}) {'張三': ['經理', 30000, 7], '李四': ['組長', 25000, 5], '王五': ['業務', 22000, 2], '趙六': ['網管', 22000, 1], '孫七': ['程式設計師', 27000, 5], '王九': 100}\n",
"\n",
"9: {'張三': ['經理', 30000, 7], '李四': ['組長', 25000, 5], '王五': ['業務', 22000, 2], '趙六': ['網管', 22000, 1], '孫七': ['程式設計師', 27000, 5], '王九': 100, 'John': 45, 'Mary': 23, 'Susan': 30}\n",
"\n",
"10: {'Hank': None, 'Nick': None, 'Helen': None, 'Song': None}\n"
]
}
],
"source": [
"# 以下為字典方法\n",
"\n",
"d1 = {'張三':['經理', 30000, 7], '李四':['組長', 25000, 5], '王五':['業務', 22000, 2], '趙六':['網管', 22000, 1], \n",
" '孫七':['程式設計師', 27000, 5], '王九': 100, '韋一笑':{'綽號':'青翼蝠王', '職位':'護教法王', '絕技':'輕功'}}\n",
"\n",
"d1.clear() #清空字典內容\n",
"print('1: ', d1)\n",
"\n",
"d1 = {'張三':['經理', 30000, 7], '李四':['組長', 25000, 5], '王五':['業務', 22000, 2], '趙六':['網管', 22000, 1], \n",
" '孫七':['程式設計師', 27000, 5], '王九': 100, '韋一笑':{'綽號':'青翼蝠王', '職位':'護教法王', '絕技':'輕功'}}\n",
"\n",
"d = d1.copy()\n",
"\n",
"print('\\n2: ', d)\n",
"print('\\n3: ', d1.get('韋一笑')) # 在沒辦法用方括號來做關鍵字取值時,可以使用\n",
"print('\\n4: ', d1.get('楊過')) # 沒有該關鍵字不會有錯誤訊息(KeyError),這點很重要\n",
"\n",
"print('\\n5: ', d1.items()) # 取出某字典中所有的配對,以有序組方式呈現\n",
"print('\\n6: ', d1.keys()) # 取出某字典中所有的關鍵字,可用list()轉為表列,如果用在for迴圈則直接用字典名稱即可\n",
"print('\\n6-2: ', d1.values()) # 取出字典中所有的值,可以list()轉為表列,可直接用在for迴圈中\n",
"d1.pop('王九') # 刪除 王九這個配對\n",
"print('\\n7: ', d1) \n",
"print('\\n8: ', d1.pop('楊過', '沒這個關鍵字哦!')) # 可以指定無關鍵字時的訊息,如不指定,則出現錯誤\n",
"\n",
"d1 = {'張三':['經理', 30000, 7], '李四':['組長', 25000, 5], '王五':['業務', 22000, 2], '趙六':['網管', 22000, 1], \n",
" '孫七':['程式設計師', 27000, 5], '王九': 100, '韋一笑':{'綽號':'青翼蝠王', '職位':'護教法王', '絕技':'輕功'}}\n",
"\n",
"print('\\n9: ', d1.popitem(), d1) # 從字典刪除一個配對,無法指定要刪除哪個,回傳一個有序對\n",
"\n",
"d2 = {'John': 45, 'Mary':23, 'Susan':30}\n",
"\n",
"d1.update(d2)\n",
"print('\\n9: ', d1) # 把d2的內容加入d1\n",
"\n",
"seq = 'Hank', 'Nick', 'Helen', 'Song' # 一個有序組\n",
"d3 = dict.fromkeys(seq) # 把seq中的成員當成關鍵字,這是建造一個沒有值的字典,供稍後使用\n",
"print('\\n10: ', d3) \n"
]
},
{
"cell_type": "markdown",
"id": "8b6e80c8",
"metadata": {},
"source": [
"### 幾點注意事項\n",
"\n",
"1. 關鍵字:值 配對,不見得兩者要有關係。因為字典很容易從關鍵字找到其值,故,如果你有需要用這種方法來快速從某個值找到另個值的時候,即使這兩個值沒有關係,也可使用字典。\n",
"1. 在自然語言處理中,字典的常用處之一是:記載詞頻。\n",
"1. 如果你想從值來找到關鍵字,需要使用for迴圈。\n",
"1. 要在for迴圈使用關鍵字,僅使用字典;但要使用值,則要用 .values()將值取出。\n",
"1. 看一下下面的例子:"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "589f4f84",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"總共有196個詞\n",
"====================================================================================================\n",
"the出現的次數為:9\n",
"a出現的次數為:8\n",
",出現的次數為:7\n",
"to出現的次數為:6\n",
"taipei出現的次數為:5\n",
"$出現的次數為:5\n",
".出現的次數為:5\n",
"department出現的次數為:5\n",
"city出現的次數為:4\n",
"huang出現的次數為:4\n",
"nt出現的次數為:4\n",
"for出現的次數為:4\n",
"quarantine出現的次數為:4\n",
"that出現的次數為:4\n",
"taiwan出現的次數為:3\n",
"new出現的次數為:3\n",
"1出現的次數為:3\n",
"million出現的次數為:3\n",
"was出現的次數為:3\n",
"at出現的次數為:3\n",
"from出現的次數為:3\n",
"is出現的次數為:3\n",
"(出現的次數為:2\n",
")出現的次數為:2\n",
"fine出現的次數為:2\n",
"night出現的次數為:2\n",
"club出現的次數為:2\n",
"when出現的次數為:2\n",
"supposed出現的次數為:2\n",
"be出現的次數為:2\n",
"home出現的次數為:2\n",
"said出現的次數為:2\n",
"in出現的次數為:2\n",
"violation出現的次數為:2\n",
"on出現的次數為:2\n",
"of出現的次數為:2\n",
"news出現的次數為:1\n",
"—出現的次數為:1\n",
"man出現的次數為:1\n",
"surnamed出現的次數為:1\n",
"faces出現的次數為:1\n",
"us出現的次數為:1\n",
"33,000出現的次數為:1\n",
"patronizing出現的次數為:1\n",
"he出現的次數為:1\n",
"observing出現的次數為:1\n",
"14-day出現的次數為:1\n",
"government出現的次數為:1\n",
"who出現的次數為:1\n",
"resides出現的次數為:1\n",
"sanchong出現的次數為:1\n",
"district出現的次數為:1\n",
"booked出現的次數為:1\n",
"by出現的次數為:1\n",
"police出現的次數為:1\n",
"they出現的次數為:1\n",
"made出現的次數為:1\n",
"spot出現的次數為:1\n",
"check出現的次數為:1\n",
"sunday出現的次數為:1\n",
"morning出現的次數為:1\n",
"cna出現的次數為:1\n",
"reported出現的次數為:1\n",
"returned出現的次數為:1\n",
"southeast出現的次數為:1\n",
"asia出現的次數為:1\n",
"march出現的次數為:1\n",
"18出現的次數為:1\n",
"and出現的次數為:1\n",
"himself出現的次數為:1\n",
"until出現的次數為:1\n",
"april出現的次數為:1\n",
"2.出現的次數為:1\n",
"health出現的次數為:1\n",
"after出現的次數為:1\n",
"receiving出現的次數為:1\n",
"report出現的次數為:1\n",
"centers出現的次數為:1\n",
"disease出現的次數為:1\n",
"control出現的次數為:1\n",
"decided出現的次數為:1\n",
"because出現的次數為:1\n",
"visited出現的次數為:1\n",
"nightclub出現的次數為:1\n",
"which出現的次數為:1\n",
"an出現的次數為:1\n",
"enclosed出現的次數為:1\n",
"space出現的次數為:1\n",
"his出現的次數為:1\n",
"considered出現的次數為:1\n",
"especially出現的次數為:1\n",
"severe出現的次數為:1\n",
"therefore出現的次數為:1\n",
"slapping出現的次數為:1\n",
"him出現的次數為:1\n",
"with出現的次數為:1\n",
"urged出現的次數為:1\n",
"those出現的次數為:1\n",
"under出現的次數為:1\n",
"keep出現的次數為:1\n",
"mind出現的次數為:1\n",
"fines出現的次數為:1\n",
"violations出現的次數為:1\n",
"may出現的次數為:1\n",
"range出現的次數為:1\n",
"100,000出現的次數為:1\n"
]
}
],
"source": [
"tokens = ['taipei', '(', 'taiwan', 'news', ')', '—', 'a', 'new', 'taipei', 'city', 'man', 'surnamed', 'huang', 'faces', 'a', 'nt', '$', '1', 'million', '(', 'us', '$', '33,000', ')', 'fine', 'for', 'patronizing', 'a', 'night', 'club', 'when', 'he', 'was', 'supposed', 'to', 'be', 'at', 'home', 'observing', 'a', '14-day', 'quarantine', '.', 'the', 'new', 'taipei', 'city', 'government', 'said', 'that', 'huang', ',', 'who', 'resides', 'in', 'sanchong', 'district', ',', 'was', 'booked', 'for', 'the', 'quarantine', 'violation', 'by', 'the', 'taipei', 'city', 'police', 'department', 'when', 'they', 'made', 'a', 'spot', 'check', 'at', 'a', 'night', 'club', 'on', 'sunday', 'morning', ',', 'cna', 'reported', '.', 'huang', 'returned', 'to', 'taiwan', 'from', 'southeast', 'asia', 'on', 'march', '18', 'and', 'was', 'supposed', 'to', 'quarantine', 'himself', 'at', 'home', 'until', 'april', '2.', 'the', 'new', 'taipei', 'city', 'department', 'of', 'health', 'said', 'that', 'after', 'receiving', 'the', 'report', 'from', 'the', 'taiwan', 'centers', 'for', 'disease', 'control', ',', 'the', 'department', 'decided', 'that', 'because', 'huang', 'visited', 'a', 'nightclub', ',', 'which', 'is', 'an', 'enclosed', 'space', ',', 'his', 'violation', 'is', 'considered', 'to', 'be', 'especially', 'severe', '.', 'therefore', ',', 'the', 'department', 'is', 'slapping', 'him', 'with', 'a', 'fine', 'of', 'nt', '$', '1', 'million', '.', 'the', 'department', 'urged', 'those', 'under', 'quarantine', 'to', 'keep', 'in', 'mind', 'that', 'fines', 'for', 'violations', 'may', 'range', 'from', 'nt', '$', '100,000', 'to', 'nt', '$', '1', 'million', '.']\n",
"\n",
"print('總共有%i個詞' % len(tokens))\n",
"print('='*100)\n",
"\n",
"d = {} # 建立一個空字典,等著把詞頻放進去\n",
"\n",
"for t in tokens: # tokens裏的每個成員都掃過一次\n",
" if t not in d: # 如果詞(t)不在字典d中(=不是d中的關鍵字,沒辦法判斷值在不在哦!),避免重複計算同一個詞\n",
" d[t] = tokens.count(t) # 在 d中加入 t:d.count(t)這個配對,也就是 詞:詞出現的次數\n",
"\n",
"# 把 d 的值(=次數)都取出來,用set()去掉重覆的,轉為表列,\n",
"# 再由大排至小排序\n",
"\n",
"v_sorted = sorted(set(d.values()), reverse=True)\n",
"\n",
"for v in v_sorted: # 這裏示範如何從值去取得該值的關鍵字。對v_sorted(這是排序過的值)從頭到尾掃過一次,\n",
" for k in d: # 然後,對 d 中的關鍵字 k 做一掃描,\n",
" if d[k] == v: # 如果 d[k] = v,也就是 k 這個關鍵字的值(=出現次數) = v\n",
" print(f\"{k}出現的次數為:{v}\")\n",
" #print('%s 的出現次數為:%i' %(k, v)) # 將之印出"
]
},
{
"cell_type": "markdown",
"id": "410d5726",
"metadata": {},
"source": [
"## 產生字典的方式\n",
"\n",
"1. 如果已經知道 關鍵字:值 配對,可以直接寫入程式碼中。之後可以自由做增刪。\n",
"1. 如果事前不知道有什麼配對,可以先建立一個空的字典並指派給一個變數,之後可以在程式運行後,將 關鍵字:值 配對加入。\n",
"1. 如果你有一個新的字典,想加入舊的字典中,可以使用 .update()。\n",
"1. 如果有兩個有順序的物件,如表列、字串,則可使用:dict(zip(A, B))\n",
"1. 使用dict keyword-argument form"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "f5425f42",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"zip(a, b): \n",
"d1: {'張三': ['經理', 30000, 7], '李四': ['組長', 25000, 5], '王五': ['業務', 22000, 2], '趙六': ['網管', 22000, 1], '孫七': ['程式設計師', 27000, 5], '王九': 100, 'John': 45, 'Mary': 23, 'Susan': 30}\n",
"d2: {'t': 'T', 'h': 'H', 'i': 'I', 's': 'S'}\n",
"d3: {1: 100, 2: 200, 3: 300}\n",
"d4: {'name': 'mel', 'age': 45}\n",
"d5: {'name': 'mel', 'age': 45}\n"
]
}
],
"source": [
"a = [1,2,3,4]\n",
"b = [5,6,7,8]\n",
"\n",
"print('zip(a, b): ', zip(a,b))\n",
"print('d1: ', d1)\n",
"\n",
"s1 = 'this'\n",
"s2 = 'THIS'\n",
"d2 = dict(zip(s1, s2))\n",
"print('d2: ', d2)\n",
"\n",
"d3 = dict(((1, 100), (2, 200), (3, 300)))\n",
"print('d3: ', d3)\n",
"\n",
"# dict keyword-argument form\n",
"\n",
"d4 = dict(name='mel', age=45) # 關鍵字不能是字串\n",
"print('d4: ', d4)\n",
"d5 = dict([('name', 'mel'), ('age', 45)]) # 在有序組中關鍵字必須是字串(如果不是數字的話)\n",
"print('d5: ', d5)"
]
},
{
"cell_type": "markdown",
"id": "e6d23aef",
"metadata": {},
"source": [
"#### 課堂小練習\n",
"\n",
"- 在NLP中,常需要計算標準化詞頻,算法為:$ \\frac {詞出現次數} {文本長度}$。利用下面一小篇新聞的斷詞,計算每個詞的標準化詞頻,存入一個叫wordFreq的字典。\n"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "3ac32f6d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tokens = ['我們', '必須', '正視', '聲量階級', '新貴', '興起', '引發', '的', '社會', '問題', '。', '聲量', '新貴', '是', '新', '的', '社會', '不', '平等', '現象', '。', '透過', '按', '讚數', '、', '追蹤數', '、', '點閱數', '、', '貼文數', '等', '網路聲量', ',', '這些', '新貴', '擁有', '一般', '人', '沒有', '的', '社會', '地位', ',', '也', '享有', '一般', '人', '沒有', '的', '權勢', '。', '\\n', '臉書', '是', '縱容', '這些', '權貴', '的', '幫凶', '。', '自', '九月', '十四日', '起', ',', '華爾街', '日報', '以', '「', '臉書文件', '」', '(', 'Facebook', ' ', 'Files', ')', '為', '專題', ',', '刊登', '系列', '九篇', '調查', '報告', '文章', '。', '由於', '其內', '容', '是', '根據', '吹', '哨人', '法蘭西絲', '・豪', '根', '(', 'Frances', ' ', 'Haugen', ')', '提供', '的', '臉書', '內部文件', '資料', ',', '華爾街', '日報', '這', '一', '系', '列報', '導', ',', '向', '外', '界', '揭露', '社群', '媒體', '長久以', '來', '暗黑', '的', '經營', '手法', ',', '同時', '再次', '證明', '臉書', '創辦人', '祖克柏', '一直', '飽', '受', '批判', '的', '為富不仁', '問題', '。', '\\n', '\\n', '臉書', '為', '權貴', '大', '開特', '權', '後', '門', ',', '正', '是', '華爾街', '日報系', '列報', '導', '第一篇', '文章主題', '。', '臉書', '對', '外', '強調', ',', '只', '要', '使用者', '上傳', '的', '內容', '有', '問題', ',', '它', '就', '會', '依照', '其', '審查', '規定', '刪除', ',', '並且', '給予', '處罰', '。', '然而', ',', '實際', '的', '情況', '真', '是', '如此', '嗎', '?', '\\n', '\\n', '「', '臉書文件', '」', '報導', '指出', ',', '臉書', '內部', '有', '一份', '名為', '「', '白', '名單', '」', '的', '貴賓清單', ',', '總數', '高達', '五百八十萬', ',', '包括', '川普', '、', '哈', '巴狗道格', '(', 'Doug', ' ', 'the', ' ', 'Pug', ')', '(', '一隻', '有', '五百八十五萬', '追蹤者', '的', '哈', '巴狗', ')', '等', '。', '能夠', '進入', '這個', '「', '白', '名單', '」', '使用者', ',', '往往', '是', '具', '有', '「', '新聞', '價值', '」', '、', '「', '影響力', '」', '、', '「', '受', '歡迎', '」', '、', '「', '(', '對', '臉書', ')', '公', '關', '風險', '」', '等', '條件', '。', '臉書', '特別', '為', '這群', '備', '受', '注目', '的', '使用者', ',', '設立', '一個', '「', '交叉', '檢查', '」', '(', 'cross', ' ', 'check', '或', '是', '所', '謂', '的', 'XCheck', ')', '的', '審查', '機制', '。', '\\n', '\\n', '原本', '用來', '規範', '內容', '的', '管理', '機制', ',', '反', '而', '變成', '聲量', '新貴', '的', '方便之門', '。', '\\n', '\\n', '只', '要', '屬於', '「', '白', '名單', '」', '內容', ',', '臉書', '內部', '管理人員', '就', '會', '自動', '睜', '一隻', '眼', '閉', '一隻', '眼', '處理', '他們', '的', '違規', '行為', ',', '甚至', '有', '廿四小時', '的', '通融期', '。', '根據', '華爾街', '日報報導', ',', '這群', '聲量', '新貴', '上傳', '的', '內容', ',', '接受', '審查', '的', '不', '到', '百分之十', '。', '光', '是', '二', '○', '二', '○', '年', ',', '「', '交叉', '檢查', '」', '允許', '破壞', '規定', '內容', '繼續', '留在', '臉書', ',', '直', '到', '觀看', '總數', '達到', '一百六十億次', '後', ',', '這些', '內容', '才', '被', '移除', '。', '\\n', '\\n', '聲量', '新貴', '寄生', '在', '臉書', ',', '而', '臉書', '需要', '靠', '他們', '賺取', '更大', '的', '營收', '利潤', '。', '這種', '共謀', '關係', '形成', '社群', '媒體', '的', '一種', '病態生態', '。', '尤其臉', '書', '加強', '演算法', '推介', '功能', '的', '運用', ',', '密集', '提供', '同溫層', '的', '訊息', '與', '意見', ',', '此', '一', '病態', '生態', '已', '成為', '人們', '思想言行', '偏', '激化', '、', '兩', '極', '化溫床', '。', '有', '心', '人士', '利用', '傳播', '假', '新聞', '、', '倡議', '反', '科學', '論點', '、', '鼓吹', '仇恨', '意識', '等', '偏', '激手段', ',', '煽動', '社群', '媒體內戰', ',', '讓', '網路聲量', '變成', '是', '自己', '私欲', '的', '利益', '。', '\\n', '\\n', '「', '臉書文件', '」', '系列', '調查', '報導', '清楚', '顯示', ',', '病態', '社群', '媒體', '的', '關鍵', '課題', ',', '不', '是', '內容', '審查', ',', '而', '是', '落實', '公司', '治理', '以及', '演算法', '規範', '。', '社群', '媒體', '是', '一個', '牽涉', '到', '龐大', '利益', '的', '商業活動', ',', '但', '其', '所', '衍生', '的', '眾多', '社會', '成本', '(', '例如', '霸凌', '、', '孤獨', '等', ')', '卻是', '由', '全民', '所', '負擔', '。', '\\n', '\\n', '現今', '有', '越來', '越多', '政府', '與', '組織', '積極', '要求', '臉書', '進行', '改革', ',', '台灣', '的', '政府', '並', '沒有', '太多', '作為', '。', '難道', '是', '因為', '政府', '自己', '正', '是', '聲量', '新貴', '的', '受益者', '?']\n",
"len(tokens)\n"
]
},
{
"cell_type": "markdown",
"id": "95a9ffaa",
"metadata": {},
"source": [
"### 有序組(元組,tuple)\n",
"\n",
"## 有序組\n",
"\n",
"- 有序組,我之所以這樣翻譯tuple,是因為,tuple的成員是有順序的,就跟字串、表列一樣。\n",
"- 有序組以小(圓)括弧標示:(xxx, yyy, zzz, aaa, ...)\n",
"- 有序組跟表列是很類似的:成員有順序、成員不需具同質性、沒有限制成員的個數,等。\n",
"- 但,有序組跟表列有一點很重要的差別:有序組不允許直接改變其內容!!\n",
"- 實務上,如果你有些順序需要注意的資料,但又不想在程式運作過程中資料內容(不小心)被改變,就應該選用有序組;如果在運算過程中,有需要直接改變資料內容,則選用表列。\n",
"\n",
"### 有序組的位址與切片\n",
"\n",
"- 有序組跟字串、表列一樣,都可以使用位址及切片的方式來取得其內容。\n",
"- 例如:"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "4449cc82",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"len(t): 9\n",
"456 in t: True\n",
"郭芙 in t: False\n",
"1: 張三\n",
"2: this is a tuple\n",
"3: (789, 'this is a tuple', '楊過', '郭靖', '小龍女')\n",
"4: 郭襄\n",
"5: ('張三', 789, '郭靖')\n",
"6: ('楊過', '郭靖', '小龍女', '郭襄')\n",
"7: ('郭襄', '郭靖', 'this is a tuple')\n"
]
}
],
"source": [
"t = (\"張三\", \"李四\", 456, 789, 'this is a tuple', '楊過', '郭靖', '小龍女', '郭襄')\n",
"print('len(t): ', len(t))\n",
"print('456 in t: ', 456 in t)\n",
"print('郭芙 in t:', '郭芙' in t)\n",
"print('1: ', t[0])\n",
"print('2: ', t[4])\n",
"print('3: ', t[3:8])\n",
"print('4: ', t[-1])\n",
"print('5: ', t[:8:3])\n",
"print('6: ', t[5:])\n",
"print('7: ', t[-1:3:-2])"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "ca5bd4a8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"t2: ('t', 'h', 'i', 's', 'i', 's', 'a', 'b', 'o', 'o', 'k', 'n', 'o', 't', 'a', 'p', 'e', 'n', 't', 'h', 'a', 't', 'i', 's', 'a', 'k', 'n', 'i', 'f', 'e', 'n', 'o', 't', 'a', 'b', 'o', 'o', 'k')\n",
"====================================================================================================\n",
"# of k: 3\n",
"index of 1st i: 2\n"
]
}
],
"source": [
"# 有序組的方法只有兩個:count()及index()\n",
"# 可能因為:(1) 表列可以代替有序組做到很多事;(2) 有序組不能直接改變內容\n",
"\n",
"t2 = tuple(list('thisisabooknotapenthatisaknifenotabook'))\n",
"print('t2: ', t2)\n",
"print('='*100)\n",
"print('# of k: ', t2.count('k'))\n",
"print('index of 1st i: ', t2.index('i'))"
]
},
{
"cell_type": "markdown",
"id": "ca514d51",
"metadata": {},
"source": [
"## 集合 (set)\n",
"\n",
"- 集合(set) 是Python最後一個儲存資料的物件。\n",
"- 集合有以下特性:\n",
" 1. 集合的成員個數無限定,且不需具同質性\n",
" 1. 集合的成員沒有順序,且是唯一的(重複的成員會被去除)\n",
" 1. 集合可以立刻改變其成員(與表列、字典相同)\n",
" 1. 集合以大括號{}或set()來建立。\n",
" 1. 集合的成員必須是immutable,也就是,集合的成員不能是集合(表列、字典)。\n",
"- 可立刻改變成員(mutable):表列、字典、集合\n",
"- 不可立刻改變成員(immutable):數值(number)、字串、有序組"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "bf1bcc86",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"集合的類型: \n",
"成員類型混合的集合: {(55, 66, 77), 1234, 'syntax'}\n"
]
},
{
"ename": "TypeError",
"evalue": "unhashable type: 'list'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m~\\AppData\\Local\\Temp/ipykernel_6468/158986244.py\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'成員類型混合的集合:'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmixed\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 9\u001b[1;33m \u001b[0mmixed02\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m{\u001b[0m\u001b[1;34m'syntax'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m12\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;36m44\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m55\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m}\u001b[0m \u001b[1;31m# 不能有mutable成員,故出現錯誤訊息\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;31mTypeError\u001b[0m: unhashable type: 'list'"
]
}
],
"source": [
"# 集合就像數學定義一樣,用大括號括起,成員以逗點分隔\n",
"# 集合跟字典都用大括號,集合可視是沒有值的字典\n",
"\n",
"ling = {'syntax', 'semantics', 'phonetics', 'phonology', 'computational linguistics'}\n",
"print('集合的類型:', type(ling))\n",
"mixed = {'syntax', 1234, (55, 66, 77)}\n",
"print('成員類型混合的集合:', mixed)\n",
"\n",
"mixed02 = {'syntax', 12, [44,55]} # 不能有mutable成員,故出現錯誤訊息"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "c9f0c700",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"集合成員檢查: True\n",
"集合成員檢查: False\n",
"集合成員檢查: True\n",
"集合成員個數: 6\n",
"交集: {'phonology', 'semantics'}\n",
"聯集: {'syntax', 'RST', 'computational linguistics', 'corpus linguistics', 'pragmatics', 'SDRT', 'sociolinguistics', 'semantics', 'phonology', 'phonetics', 'discourse analysis'}\n",
"差集: {'phonetics', 'syntax', 'computational linguistics', 'corpus linguistics'}\n",
"對稱差集: {'syntax', 'computational linguistics', 'corpus linguistics', 'SDRT', 'RST', 'pragmatics', 'sociolinguistics', 'phonetics', 'discourse analysis'}\n"
]
}
],
"source": [
"# 集合的操作\n",
"\n",
"ling = {'syntax', 'semantics', 'phonetics', 'phonology', 'computational linguistics', 'corpus linguistics'}\n",
"ling2 = {'phonology', 'semantics', 'sociolinguistics', 'pragmatics', 'discourse analysis', 'RST', 'SDRT'}\n",
"print('集合成員檢查:', 'phonetics' in ling)\n",
"print('集合成員檢查:', 'mathematics' in ling)\n",
"print('集合成員檢查:', 'mathematics' not in ling)\n",
"print('集合成員個數:', len(ling))\n",
"print('交集:', ling & ling2)\n",
"print('聯集:', ling | ling2)\n",
"print('差集:', ling-ling2)\n",
"print('對稱差集:', ling ^ ling2) # 找出只出現在一個集合的成員"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "dfb2323c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"原來的集合: {'syntax', 'semantics', 'computational linguistics', 'corpus linguistics', 'phonology', 'phonetics'}\n",
"增加成員: {'MP', 'syntax', 'semantics', 'computational linguistics', 'corpus linguistics', 'phonology', 'phonetics'}\n",
"淺層拷貝: {'MP', 'syntax', 'semantics', 'computational linguistics', 'corpus linguistics', 'phonology', 'phonetics'}\n",
"刪除所有成員: set()\n",
"差集: {'phonetics', 'syntax', 'computational linguistics', 'corpus linguistics'}\n",
"影響原集合之差集: {'syntax', 'computational linguistics', 'corpus linguistics', 'phonetics'}\n",
"刪除指定成員: {'syntax', 'semantics', 'computational linguistics', 'phonology', 'phonetics'}\n",
"交集: {'phonetics', 'semantics'}\n",
"影響原集合的交集: {'phonetics', 'semantics'}\n",
"True\n",
"True\n",
"True\n",
"syntax\n",
"移除指定的成員: {'semantics', 'computational linguistics', 'phonology', 'phonetics'}\n",
"{1, 2, 3, 7, 8, 9}\n",
"影響原集合的對稱差集: {1, 2, 3, 7, 8, 9}\n",
"聯集: {1, 2, 3, 4, 5, 6}\n",
"把新集合的成員加入原集合中: {1, 2, 3, 'John', 7, 8, 9, 'Sue', 'Mary'}\n"
]
}
],
"source": [
"# 上面的交集等,亦可以集合方法來處理\n",
"\n",
"ling = {'syntax', 'semantics', 'phonetics', 'phonology', 'computational linguistics', 'corpus linguistics'}\n",
"print('原來的集合:', ling)\n",
"ling.add('MP')\n",
"print('增加成員:', ling )\n",
"ling_copy = ling.copy()\n",
"print('淺層拷貝:', ling_copy) # 先看一下下面的淺層拷貝的說明\n",
"ling.clear()\n",
"print('刪除所有成員:', ling)\n",
"\n",
"ling = {'syntax', 'semantics', 'phonetics', 'phonology', 'computational linguistics', 'corpus linguistics'}\n",
"print('差集:', ling.difference({'semantics', 'phonology'})) # 產生新集合,但不影響原集合\n",
"ling.difference_update({'semantics', 'phonology'})\n",
"print('影響原集合之差集:', ling) # .difference_update()會直接改變原集合的內容\n",
"\n",
"ling = {'syntax', 'semantics', 'phonetics', 'phonology', 'computational linguistics', 'corpus linguistics'}\n",
"\n",
"ling.discard('corpus linguistics')\n",
"print('刪除指定成員:', ling)\n",
"print('交集:', ling.intersection({'phonetics', 'semantics', 'Griceanims', 'neo-Griceanism'})) # 產生新的集合\n",
"ling.intersection_update({'phonetics', 'semantics', 'Griceanims', 'neo-Griceanism'})\n",
"print('影響原集合的交集:', ling)\n",
"\n",
"ling = {'syntax', 'semantics', 'phonetics', 'phonology', 'computational linguistics', 'corpus linguistics'}\n",
"\n",
"print(ling.isdisjoint({1,2,3})) # 判斷與另一個集合是否完全沒有交集\n",
"print({'syntax', 'semantics'}.issubset(ling)) # 檢查是否為子集合\n",
"print(ling.issuperset({'phonology', 'computational linguistics'})) # 檢查是否為超集合\n",
"\n",
"print(ling.pop()) # 任意移除一個成員,回傳被移除的成員\n",
"ling.remove('corpus linguistics')\n",
"print('移除指定的成員:', ling)\n",
"\n",
"print({1,2,3,4,5,6}.symmetric_difference({4,5,6,7,8,9}))\n",
"nSet = {1,2,3,4,5,6}\n",
"nSet.symmetric_difference_update({4,5,6,7,8,9})\n",
"print('影響原集合的對稱差集:', nSet)\n",
"print('聯集:', {1,2,3,4}.union({3,4,5,6}))\n",
"nSet.update({'John', 'Mary', 'Sue'})\n",
"print('把新集合的成員加入原集合中:', nSet)"
]
},
{
"cell_type": "markdown",
"id": "e86c6faf",
"metadata": {},
"source": [
"### if 敍述 (if statement)\n",
"\n",
"- if 敍述的基本語法如下:
\n",
" if 條件:
\n",
" 程式碼區塊01
\n",
" else:
\n",
" 程式碼區塊02\n",
"\n",
"- if 敍述的執行流程為:
\n",
" 檢查if標示的條件是否吻合:
\n",
" (1)如果吻合,則執行程式碼區塊01
\n",
" (2)如果不吻合,則執行程式碼區塊02
\n",
" (3)如果在if...else...之後還有程式碼,則在執行區塊01或02之後,會繼續執行if...else...之後的程式碼。\n",
"\n",
"- 例如:"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "46e47061",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"你不能買酒!\n"
]
}
],
"source": [
"age = 18\n",
"\n",
"if age> 20:\n",
" print('你可以買酒!')\n",
"else:\n",
" print('你不能買酒!')"
]
},
{
"cell_type": "markdown",
"id": "753cb771",
"metadata": {},
"source": [
"- if 敍述可以只有if的部份,而沒有else。\n",
"- if 敍述可有有很多個 if,但如果有else,則只能有一個。\n",
"- 第二個以後的if有兩種:\n",
" 1. if:不具排他性\n",
" 1. elif (= else if):具排他性,也就是,只要某個if的條件符合,其他if都不再嘗試。\n",
"- 語法如下:
\n",
" if 條件:
\n",
" 程式碼區塊01
\n",
" elif 條件:
\n",
" 程式碼區塊1-1
\n",
" elif 條件:
\n",
" 程式碼區塊1-2
\n",
" elif 條件:
\n",
" 程式碼區塊1-3
\n",
" ...
\n",
" else:
\n",
" 程式碼區塊02
\n",
"
\n",
" if 條件:
\n",
" 程式碼區塊01
\n",
" if 條件:
\n",
" 程式碼區塊1-1
\n",
" if 條件:
\n",
" 程式碼區塊1-2
\n",
" if 條件:
\n",
" 程式碼區塊1-3
\n",
" ...
\n",
" else:
\n",
" 程式碼區塊02
\n"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "23a97fb5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"a 是3的倍數\n",
"a 是5的倍數\n"
]
}
],
"source": [
"a = 105\n",
"\n",
"if a%3 == 0:\n",
" print('a 是3的倍數')\n",
"if a%5 == 0:\n",
" print('a 是5的倍數') # 用 if,因為兩個條件都符合,故兩個區塊都執行\n",
"else:\n",
" print('a既不是3的倍數也不是5的倍數')"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "4d2a206d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"a 是3的倍數\n"
]
}
],
"source": [
"a = 105\n",
"\n",
"if a%3 == 0:\n",
" print('a 是3的倍數')\n",
"elif a%5 == 0:\n",
" print('a 是5的倍數') # 用 elif,具排他性,只會執行第一個符合的 if 條件,其他不執行\n",
"else:\n",
" print('a既不是3的倍數也不是5的倍數')"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "3c19ca43",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"a既不是3的倍數也不是5的倍數\n"
]
}
],
"source": [
"# 如果 if 的條件都不符合,那麼,使用 if 或 elif 都沒有差別。\n",
"\n",
"a = 103\n",
"\n",
"if a%3 == 0:\n",
" print('a 是3的倍數')\n",
"if a%5 == 0:\n",
" print('a 是5的倍數')\n",
"else:\n",
" print('a既不是3的倍數也不是5的倍數')"
]
},
{
"cell_type": "markdown",
"id": "c0000515",
"metadata": {},
"source": [
"### 一些注意事項\n",
"\n",
"1. if/elif/else 之後,一定要有個冒號!\n",
"1. 冒號之後,要換行,換行後的程式碼區塊一定要內縮!注意:只能用空白鍵內縮,而不是tab鍵!(有的純文字編輯器會判斷並自動內縮。)\n",
"1. if/elif/else的程式區塊,可以再用if敍述。沒有規定可以放幾層,但是,實務上,太多包孕的if敍述,會讓程式設計師邏輯判斷難以進行(對Python本身倒是沒有影響)。\n",
"1. 如果有多層包孕的if敍述,記得要層層內縮!如:
\n",
" if 條件:
\n",
" if 條件:
\n",
" 程式碼區塊01
\n",
" else:
\n",
" 程式碼區塊02"
]
},
{
"cell_type": "markdown",
"id": "28eded54",
"metadata": {},
"source": [
"### 課堂練習\n",
"\n",
"1. 請設計一個程式,執行下面三個工作。\n",
" 1. 若輸入是小寫字元,改成大寫\n",
" 1. 若輸入是大寫字元,改成小寫\n",
" 1. 若是阿拉伯數字,照舊輸出\n",
" 1. 其他的,輸出錯誤\n",
" \n",
"1. 有一個百貨公司五十週年週年慶。消費滿10萬元,打九折;8萬,打95折;5萬,打98折。如果消費恰好五十歲,則不論金額,都打95折。請設計這個程式。"
]
},
{
"cell_type": "markdown",
"id": "e8654510",
"metadata": {},
"source": [
"## 迴圈(loops)\n",
"\n",
"- 迴圈的功能是,重覆地執行某些運作。\n",
"- Python中的迴圈有兩種:while迴圈及for迴圈。\n",
" 1. while迴圈是在符合某些條件的情況下,重覆某些運算。\n",
" 1. for迴圈是對某個具多重成員的物件,對其成員做某些重覆運算。\n",
"\n",
"### while 迴圈\n",
"\n",
"- 格式:
\n",
" while 條件:
\n",
" 執行要做的運算
\n",
" else:
\n",
" 條件不符時要做的運算
\n",
"\n",
"- else 的部份可有可無。常常看到的while 迴圈,是沒有else的部份的。\n",
"- 使用while迴圈,要注意一點:條件必要在某個時候轉為假,否則,迴圈會變成無限迴圈,一直執行下去。\n",
"- 如:
\n",
" while True:
\n",
" print('Type crtl+c to stop me!)
\n",
" 就是一個無限迴圈,因為True永遠不會變假,故條件永遠為真。"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "801fe7e2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"spam pam am m "
]
}
],
"source": [
"x = 'spam'\n",
"\n",
"while x: # 非空串即為真,空字串則為假\n",
" print(x, end=' ')\n",
" x=x[1:] "
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "065ae712",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 1 2 3 4 5 6 7 8 9 "
]
}
],
"source": [
"a = 0\n",
"b = 10\n",
"\n",
"while a\n",
" while 條件:
\n",
" 要執行的運算
\n",
" if 條件2: break
\n",
" if 條件3: continue
\n",
" else:
\n",
" 要執行的運算
"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "b36a18e2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"8 6 4 2 0 \n",
"\n",
"9 7 5 3 1 \n",
"\n",
"8 6 4 2 0 \n",
"\n",
"10\n",
"9\n",
"Enter name:John\n",
"Enter age:40\n",
"Hello, John => 1600\n",
"Enter name:stop\n"
]
}
],
"source": [
"x = 10\n",
"while x:\n",
" x -= 1\n",
" if x%2 != 0: continue # x不能整除2時,跳回迴圈第一行;可以整除時,才執行print()\n",
" print(x, end=' ')\n",
"\n",
"print('\\n')\n",
"\n",
"y = 10\n",
"while y:\n",
" y -= 1\n",
" if y%2 != 0: # 沒有continue,則直接執行print() \n",
" print(y, end=' ')\n",
"\n",
"print('\\n')\n",
"\n",
"z = 10\n",
"while z:\n",
" z -= 1\n",
" if z%2 == 0: # 不能整除2時,回到迴圈開始再重頭來 = 能整除2時,執行print()\n",
" print(z, end=' ')\n",
" \n",
"print('\\n')\n",
"\n",
"zz = 10\n",
"while zz:\n",
" if zz % 4 == 0: break # zz能整除4時,中止;否則,執行其下兩行\n",
" print(zz) \n",
" zz -= 1\n",
" \n",
"while True:\n",
" name = input('Enter name:')\n",
" if name == 'stop': break # 也可以用來利用輸入的字串來做為中止while迴圈\n",
" age = input('Enter age:')\n",
" print('Hello, %s => %i' %(name, int(age)**2))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e1d28178",
"metadata": {},
"outputs": [],
"source": [
"# 一個用處比較明顯的例子\n",
"\n",
"import random\n",
"\n",
"names = ['郭襄', '郭芙', '公孫綠萼', '程英', '陸無雙', '完顏萍', '小龍女']\n",
"\n",
"pickedName = random.choice(names)\n",
"\n",
"count = 5\n",
"\n",
"while count > 0:\n",
" print('猜猜看我想到的神鵰俠侶中的俠女是誰?')\n",
" print('你有%i次機會。' %count)\n",
" guess = input('我的答案是:')\n",
" count -= 1\n",
" if guess == pickedName:\n",
" print('猜對了!你好棒!')\n",
" break # 猜對了,中止迴圈\n",
" else:\n",
" print('不對哦!\\n') # 沒猜對,又不到五次,繼續猜\n",
"else:\n",
" print('你五次都猜錯了...') # 沒猜對,又已猜過五次,執行本行"
]
},
{
"cell_type": "markdown",
"id": "bfd37bc6",
"metadata": {},
"source": [
"- 注意:while迴圈有沒有else,其運作不同:\n",
" 1. 有else:要while的條件為假時,才會執行else以下的程式碼。
\n",
" while 條件:
\n",
" 運算一
\n",
" else:
\n",
" 運算二
\n",
" 1. 沒有else時,不管while條件為真為假,只要離開while迴圈,就會執行。
\n",
" while 條件:
\n",
" 運算一
\n",
" 運算二
"
]
},
{
"cell_type": "markdown",
"id": "5730d4b0",
"metadata": {},
"source": [
"## for 迴圈\n",
"\n",
"- for 迴圈運作於包含成員的物件,如,字串、表列、字典、有序對等,對該物件的每個成員做運算。\n",
"- 格式一:
\n",
" for 變數 in 包含內部成員的物件:
\n",
" 要執行的運算一
\n",
" else:
\n",
" 要執行的運算二
\n",
"- 格式二:
\n",
" for 變數 in 包含內部成員的物件:
\n",
" 要執行的運算一
\n",
" if 條件1: break
\n",
" if 條件2: continue
\n",
" else:
\n",
" 要執行的運算二
\n",
"- 請注意:\n",
" 1. else的部份,跟while迴圈一樣,是可有可無的。\n",
" 1. 雖然格式二中的if條件只執行break/continue,但實際上,for迴圈中的if條件可以正常使用,不限於break/continue。\n",
" 1. while迴圈、for迴圈及if條件,可以互相包孕,理論上沒有層數的限制。唯一的限制是:程式設計師要能夠釐清使用的邏輯。"
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "00d4917b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"A => 65\n",
" => 32\n",
"p => 112\n",
"u => 117\n",
"s => 115\n",
"h => 104\n",
" => 32\n",
"b => 98\n",
"y => 121\n",
" => 32\n",
"t => 116\n",
"h => 104\n",
"e => 101\n",
" => 32\n",
"U => 85\n",
"S => 83\n",
" => 32\n",
"S => 83\n",
"t => 116\n",
"a => 97\n",
"t => 116\n",
"e => 101\n",
" => 32\n",
"D => 68\n",
"e => 101\n",
"p => 112\n",
"a => 97\n",
"r => 114\n",
"t => 116\n",
"m => 109\n",
"e => 101\n",
"n => 110\n",
"t => 116\n",
" => 32\n",
"t => 116\n",
"o => 111\n",
" => 32\n",
"i => 105\n",
"n => 110\n",
"c => 99\n",
"l => 108\n",
"u => 117\n",
"d => 100\n",
"e => 101\n",
" => 32\n",
"t => 116\n",
"h => 104\n",
"e => 101\n",
" => 32\n",
"p => 112\n",
"h => 104\n",
"r => 114\n",
"a => 97\n",
"s => 115\n",
"e => 101\n",
" => 32\n",
"\" => 34\n",
"W => 87\n",
"u => 117\n",
"h => 104\n",
"a => 97\n",
"n => 110\n",
" => 32\n",
"v => 118\n",
"i => 105\n",
"r => 114\n",
"u => 117\n",
"s => 115\n",
"\" => 34\n",
" => 32\n",
"i => 105\n",
"n => 110\n",
" => 32\n",
"a => 97\n",
" => 32\n",
"j => 106\n",
"o => 111\n",
"i => 105\n",
"n => 110\n",
"t => 116\n",
" => 32\n",
"s => 115\n",
"t => 116\n",
"a => 97\n",
"t => 116\n",
"e => 101\n",
"m => 109\n",
"e => 101\n",
"n => 110\n",
"t => 116\n",
" => 32\n",
"w => 119\n",
"i => 105\n",
"t => 116\n",
"h => 104\n",
" => 32\n",
"o => 111\n",
"t => 116\n",
"h => 104\n",
"e => 101\n",
"r => 114\n",
" => 32\n",
"G => 71\n",
"r => 114\n",
"o => 111\n",
"u => 117\n",
"p => 112\n",
" => 32\n",
"o => 111\n",
"f => 102\n",
" => 32\n",
"S => 83\n",
"e => 101\n",
"v => 118\n",
"e => 101\n",
"n => 110\n",
" => 32\n",
"m => 109\n",
"e => 101\n",
"m => 109\n",
"b => 98\n",
"e => 101\n",
"r => 114\n",
"s => 115\n",
" => 32\n",
"f => 102\n",
"o => 111\n",
"l => 108\n",
"l => 108\n",
"o => 111\n",
"w => 119\n",
"i => 105\n",
"n => 110\n",
"g => 103\n",
" => 32\n",
"a => 97\n",
" => 32\n",
"m => 109\n",
"e => 101\n",
"e => 101\n",
"t => 116\n",
"i => 105\n",
"n => 110\n",
"g => 103\n",
" => 32\n",
"o => 111\n",
"f => 102\n",
" => 32\n",
"f => 102\n",
"o => 111\n",
"r => 114\n",
"e => 101\n",
"i => 105\n",
"g => 103\n",
"n => 110\n",
" => 32\n",
"m => 109\n",
"i => 105\n",
"n => 110\n",
"i => 105\n",
"s => 115\n",
"t => 116\n",
"e => 101\n",
"r => 114\n",
"s => 115\n",
" => 32\n",
"o => 111\n",
"n => 110\n",
" => 32\n",
"c => 99\n",
"o => 111\n",
"r => 114\n",
"o => 111\n",
"n => 110\n",
"a => 97\n",
"v => 118\n",
"i => 105\n",
"r => 114\n",
"u => 117\n",
"s => 115\n",
" => 32\n",
"o => 111\n",
"n => 110\n",
" => 32\n",
"W => 87\n",
"e => 101\n",
"d => 100\n",
"n => 110\n",
"e => 101\n",
"s => 115\n",
"d => 100\n",
"a => 97\n",
"y => 121\n",
" => 32\n",
"w => 119\n",
"a => 97\n",
"s => 115\n",
" => 32\n",
"r => 114\n",
"e => 101\n",
"j => 106\n",
"e => 101\n",
"c => 99\n",
"t => 116\n",
"e => 101\n",
"d => 100\n",
", => 44\n",
" => 32\n",
"r => 114\n",
"e => 101\n",
"s => 115\n",
"u => 117\n",
"l => 108\n",
"t => 116\n",
"i => 105\n",
"n => 110\n",
"g => 103\n",
" => 32\n",
"i => 105\n",
"n => 110\n",
" => 32\n",
"s => 115\n",
"e => 101\n",
"p => 112\n",
"a => 97\n",
"r => 114\n",
"a => 97\n",
"t => 116\n",
"e => 101\n",
" => 32\n",
"s => 115\n",
"t => 116\n",
"a => 97\n",
"t => 116\n",
"e => 101\n",
"m => 109\n",
"e => 101\n",
"n => 110\n",
"t => 116\n",
"s => 115\n",
" => 32\n",
"a => 97\n",
"n => 110\n",
"d => 100\n",
" => 32\n",
"d => 100\n",
"i => 105\n",
"v => 118\n",
"i => 105\n",
"s => 115\n",
"i => 105\n",
"o => 111\n",
"n => 110\n",
" => 32\n",
"i => 105\n",
"n => 110\n",
" => 32\n",
"t => 116\n",
"h => 104\n",
"e => 101\n",
" => 32\n",
"g => 103\n",
"r => 114\n",
"o => 111\n",
"u => 117\n",
"p => 112\n",
". => 46\n"
]
}
],
"source": [
"s = 'A push by the US State Department to include the phrase \"Wuhan virus\" in a joint statement with other Group of Seven members following a meeting of foreign ministers on coronavirus on Wednesday was rejected, resulting in separate statements and division in the group.'\n",
"for c in s: # 注意:字串的基本單位是字元(character)\n",
" print('%s => %i' %(c, ord(c)))"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "53ac5b2f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"longWs: ['Department', 'include', 'phrase', '\"Wuhan', 'virus\"', 'statement', 'members', 'following', 'meeting', 'foreign', 'ministers', 'coronavirus', 'Wednesday', 'rejected,', 'resulting', 'separate', 'statements', 'division', 'group.']\n",
"shortWs: ['A', 'push', 'by', 'the', 'US', 'State', 'to', 'the', 'in', 'a', 'joint', 'with', 'other', 'Group', 'of', 'Seven', 'a', 'of', 'on', 'on', 'was', 'in', 'and', 'in', 'the']\n"
]
}
],
"source": [
"words = s.split()\n",
"\n",
"longWs = []\n",
"shortWs = []\n",
"\n",
"for w in words: # 表列(有序組)基本單位是以逗點隔開的成員\n",
" if len(w) > 5:\n",
" longWs.append(w)\n",
" else:\n",
" shortWs.append(w)\n",
"print('longWs:', longWs)\n",
"print('shortWs:', shortWs)"
]
},
{
"cell_type": "code",
"execution_count": 51,
"id": "b6923a9d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"張無忌 出現於 倚天屠龍記 一書中\n",
"胡斐 出現於 飛狐外傳 一書中\n",
"阿朱 出現於 天龍八部 一書中\n",
"王語嫣 出現於 天龍八部 一書中\n",
"霍青桐 出現於 書劍恩仇錄 一書中\n",
"朱九真 出現於 倚天屠龍記 一書中\n",
"==================================================\n",
"張無忌 出現於 倚天屠龍記 一書中\n",
"胡斐 出現於 飛狐外傳 一書中\n",
"阿朱 出現於 天龍八部 一書中\n",
"王語嫣 出現於 天龍八部 一書中\n",
"霍青桐 出現於 書劍恩仇錄 一書中\n",
"朱九真 出現於 倚天屠龍記 一書中\n"
]
}
],
"source": [
"names = ['張無忌', '胡斐', '阿朱', '王語嫣', '霍青桐', '朱九真']\n",
"books = ['倚天屠龍記', '飛狐外傳', '天龍八部', '天龍八部', '書劍恩仇錄', '倚天屠龍記']\n",
"\n",
"d = dict(zip(names, books))\n",
"\n",
"for key in d: # 字典的基本單位是關鍵字\n",
" print('%s 出現於 %s 一書中' %(key, d[key]))\n",
" \n",
"# 以下可以達到相同效果\n",
"print('='*50)\n",
"\n",
"for key, val in d.items(): # 使用 .items() 把 關鍵字:值 配對以有序組的程式取出\n",
" print('%s 出現於 %s 一書中' %(key, val))"
]
},
{
"cell_type": "code",
"execution_count": 71,
"id": "a02e5ccf",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"5050\n"
]
}
],
"source": [
"# 數字相加\n",
"\n",
"res = 0\n",
"\n",
"for i in range(1, 101):\n",
" res += i # res = res + i\n",
" \n",
"print(res)"
]
},
{
"cell_type": "markdown",
"id": "b933f90a",
"metadata": {},
"source": [
"#### 上課小練習\n",
"\n",
"- 上面做過的簡單MLU練習:假設你收集到一個小baby說的六個句子:up、come up、play ball、come play ball、daddy come play ball、daddy play ball、daddy play too。你想要計算一下這個baby的 MLU (Mean Length of Utterance)。你應該怎麼做?(使用下面Excercise 1的部份程式碼)\n",
" 1. 如果你的MLU要取到小數點下兩位,四捨五入,該怎麼做?\n",
" 2. 如果你的MLU要小數點下無條件捨去,該怎麼做?\n",
"- 怎麼樣for迴圈以及前面學到的技術來計算這個問題?"
]
},
{
"cell_type": "markdown",
"id": "7d47b45e",
"metadata": {},
"source": [
"## 載入 (import)\n",
"\n",
"- Python內建了許多模組(module)可以在需要時載入,如math、decimal、random等等\n",
"- Python受人歡迎的原因之一是,有許多人替其開發模組套件,可以供人使用,如NLTK(自然語言處理工具組)、numpy(計算arrays)、pandas(與Excel功能相似)、matplotlib (繪製圖表)等等。\n",
" 1. 這些非內建模組套件需要自行下載安裝,需要的,請自行搜尋其下載方式。\n",
"- 這些不是打開Python就載內的模組套件,都需要載入(import)\n",
"- 格式:\n",
" 1. import 模組 (載入整個模組)\n",
" 1. import 模組 as 較短的名稱\n",
" 1. from 模組 import 函式1, 函式2, .... (自模組載入(只有)函式1, 函式2, ...)\n",
" 1. from 模組 import 函式 as 較短的名稱"
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "c1d2816b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10.0"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import math\n",
"\n",
"math.sqrt(100) # 只載入math模組,要使用其包含的函式,需要用:模組.函式()"
]
},
{
"cell_type": "code",
"execution_count": 53,
"id": "861f207f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"120"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from math import factorial\n",
"\n",
"factorial(5) # 從模組載入特定函式,可以僅使用該函式"
]
},
{
"cell_type": "code",
"execution_count": 54,
"id": "48890f07",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"120"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from math import factorial as fr # 覺得函式太長,可以用 as 縮寫之\n",
"\n",
"fr(5)"
]
},
{
"cell_type": "code",
"execution_count": 55,
"id": "6c4dcfa9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"平均: 68.9\n",
"標準差: 18.98\n",
"變異數: 360.09\n"
]
}
],
"source": [
"import numpy as np\n",
"\n",
"grades = [45, 76, 88, 54, 99, 87, 45, 46, 75, 74]\n",
"print('平均:', np.mean(grades))\n",
"print('標準差:', round(np.std(grades), 2))\n",
"print('變異數:', round(np.var(grades), 2))\n"
]
},
{
"cell_type": "markdown",
"id": "5b0eb6b3",
"metadata": {},
"source": [
"### 注意事項\n",
"\n",
"- 要使用 import 來載入模組,該模組要在適當的路徑上,如果是內建的模組,則不用擔心;如果是需要下載安裝的模組,最好去查閱該模組的使用說明(documentation),看看如何安裝。最常見的是使用:pip 安裝。pip安裝,需要在提示字元(DOS模式下執行),由於這又牽涉到DOS路徑的設定,最簡單的方式是,使用 anaconda (powershell) prompt,在這個環境下,路徑都已設定完成,只要直接使用 pip 即可。\n",
"- 模組聽起來是個很嚴肅的名詞,但是,Python 模組其實就是一個 .py 檔,就跟你寫的程式一樣。要注意的是,Python模組裏定義了要給人使用的函式(下半部要談的主題)或變數。要使用你自己寫的模組,要import成功,檔案位置很重要:\n",
" 1. 把你自己寫的模組放在跟要用這個模組的程式相同的目錄下,這樣,就可以使用上面的方式來載入。\n",
" 1. 如果你開發較大的專題,會希望把同一個專題的模組放在相同的目錄,不跟其他混在一起。在這種時候,你要在 Python 的目錄下,加入一個叫:dirs.pth的檔案,裏面把你想要 Python 搜尋的目錄列出。 "
]
},
{
"cell_type": "markdown",
"id": "e4c8024c",
"metadata": {},
"source": [
"# 函式 (function)\n",
"\n",
"- 函式是一個很重要的議題,學習程式的人都必須學會。\n",
"- 函式的功能是:把一些可能重覆出現的程式碼,集合起來,取一個名字。因為程式碼如果要用很多次,每次都要重覆鍵入,這樣不僅費時,而且輸入多次,犯錯的機會就提高。更重要的是:重覆的事,交給程式來做,就跟迴圈一樣,這才是程式的精義之一!\n",
"- 根據 Learning Python這本書,函式主要好處是:\n",
" 1. 讓程式碼再利用性最大化\n",
" 1. 讓程式碼重覆性最小化\n",
"- 格式:
\n",
" def 函式名稱(論元1, 論元2, ...):
\n",
" 程式內容1
\n",
" 程式內容2
\n",
" ....
\n",
"- 例如:"
]
},
{
"cell_type": "code",
"execution_count": 57,
"id": "7f09b13b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"bigrams:\n",
"['美中', '中兩', '兩強', '強領', '領導', '導人', '人視', '視訊', '訊高', '高峰', '峰會', '會甫', '甫告', '告落', '落幕', '幕,', ',各', '各方', '方就', '就傳', '傳出', '出美', '美國', '國有', '有意', '意抵', '抵制', '制北', '北京', '京冬', '冬季', '季奧', '奧運', '運訊', '訊息', '息,', ',但', '但政', '政治', '治是', '是要', '要講', '講究', '究時', '時機', '機與', '與節', '節奏', '奏,', ',就', '就目', '目前', '前端', '端出', '出抵', '抵制', '制北', '北京', '京冬', '冬奧', '奧所', '所能', '能產', '產生', '生各', '各項', '項效', '效應', '應來', '來說', '說,', ',其', '其實', '實相', '相關', '關有', '有利', '利時', '時間', '間節', '節點', '點早', '早就', '就過', '過去', '去,', ',而', '而且', '且展', '展望', '望可', '可能', '能效', '效應', '應亦', '亦相', '相當', '當有', '有限', '限,', ',華', '華盛', '盛頓', '頓決', '決策', '策謀', '謀士', '士若', '若是', '是不', '不能', '能深', '深思', '思熟', '熟慮', '慮,', ',到', '到最', '最後', '後很', '很有', '有可', '可能', '能會', '會弄', '弄巧', '巧成', '成拙', '拙。', '。首', '首先', '先必', '必須', '須指', '指出', '出,', ',在', '在國', '國際', '際社', '社會', '會若', '若要', '要運', '運用', '用抵', '抵制', '制運', '運動', '動賽', '賽事', '事,', ',作', '作為', '為政', '政治', '治表', '表態', '態與', '與殺', '殺傷', '傷對', '對方', '方國', '國際', '際形', '形象', '象手', '手段', '段,', ',甚', '甚至', '至是', '是存', '存心', '心要', '要在', '在實', '實質', '質商', '商業', '業利', '利益', '益上', '上攪', '攪局', '局,', ',必', '必須', '須師', '師出', '出有', '有名', '名才', '才能', '能夠', '夠煽', '煽動', '動人', '人心', '心獲', '獲得', '得響', '響應', '應。', '。因', '因此', '此如', '如何', '何運', '運用', '用特', '特定', '定時', '時間', '間節', '節點', '點,', ',在', '在國', '國際', '際社', '社會', '會對', '對運', '運動', '動賽', '賽事', '事東', '東道', '道主', '主,', ',在', '在國', '國際', '際事', '事務', '務上', '上負', '負面', '面行', '行為', '為記', '記憶', '憶猶', '猶新', '新時', '時斷', '斷然', '然出', '出招', '招,', ',才', '才能', '能夠', '夠鼓', '鼓動', '動風', '風潮', '潮招', '招朋', '朋引', '引伴', '伴形', '形成', '成氣', '氣勢', '勢。', '。儘', '儘管', '管國', '國際', '際社', '社會', '會每', '每個', '個成', '成員', '員都', '都會', '會唱', '唱政', '政治', '治莫', '莫要', '要干', '干預', '預體', '體育', '育高', '高調', '調,', ',尤', '尤其', '其是', '是強', '強權', '權更', '更是', '是滿', '滿嘴', '嘴仁', '仁義', '義道', '道德', '德,', ',幹', '幹起', '起事', '事來', '來卻', '卻是', '是凶', '凶狠', '狠毒', '毒辣', '辣毫', '毫無', '無顧', '顧忌', '忌。', '。不', '不過', '過若', '若真', '真要', '要抵', '抵制', '制運', '運動', '動賽', '賽事', '事時', '時,', ',基', '基本', '本上', '上具', '具有', '有三', '三個', '個面', '面向', '向可', '可以', '以當', '當成', '成打', '打擊', '擊目', '目標', '標;', ';其', '其中', '中包', '包括', '括選', '選手', '手不', '不參', '參加', '加賽', '賽事', '事,', ',企', '企業', '業不', '不捧', '捧場', '場媒', '媒體', '體不', '不轉', '轉播', '播以', '以及', '及政', '政要', '要不', '不出', '出席', '席,', ',以', '以便', '便杯', '杯葛', '葛東', '東道', '道主', '主運', '運動', '動賽', '賽事', '事外', '外交', '交。', '。就', '就目', '目前', '前來', '來說', '說,', ',各', '各方', '方要', '要在', '在明', '明年', '年二', '二月', '月參', '參加', '加北', '北京', '京冬', '冬奧', '奧,', ',或', '或是', '是三', '三月', '月北', '北京', '京冬', '冬季', '季帕', '帕奧', '奧選', '選手', '手,', ',早', '早就', '就蓄', '蓄勢', '勢待', '待發', '發等', '等待', '待出', '出場', '場競', '競技', '技,', ',此', '此時', '時若', '若是', '是突', '突然', '然叫', '叫停', '停,', ',不', '不但', '但對', '對選', '選手', '手準', '準備', '備賽', '賽事', '事來', '來說', '說,', ',此', '此種', '種干', '干擾', '擾作', '作梗', '梗會', '會讓', '讓其', '其失', '失望', '望憤', '憤怒', '怒;', ';許', '許多', '多選', '選手', '手還', '還與', '與商', '商業', '業機', '機構', '構簽', '簽有', '有代', '代言', '言商', '商品', '品契', '契約', '約,', ',相', '相關', '關廠', '廠商', '商贊', '贊助', '助或', '或是', '是實', '實質', '質收', '收益', '益自', '自然', '然就', '就會', '會受', '受到', '到衝', '衝擊', '擊,', ',許', '許多', '多選', '選手', '手還', '還期', '期待', '待透', '透過', '過競', '競技', '技奪', '奪牌', '牌,', ',奠', '奠定', '定轉', '轉戰', '戰其', '其他', '他職', '職業', '業表', '表演', '演舞', '舞臺', '臺,', ',透', '透過', '過賽', '賽事', '事成', '成績', '績成', '成為', '為開', '開創', '創後', '後續', '續事', '事業', '業跳', '跳板', '板。', '。假', '假若', '若政', '政府', '府到', '到此', '此時', '時輕', '輕舉', '舉妄', '妄動', '動,', ',臨', '臨時', '時神', '神來', '來一', '一筆', '筆,', ',將', '將攸', '攸關', '關重', '重大', '大利', '利益', '益者', '者無', '無端', '端開', '開罪', '罪,', ',絕', '絕對', '對就', '就是', '是在', '在生', '生產', '產政', '政治', '治票', '票房', '房毒', '毒藥', '藥。', '。其', '其次', '次就', '就支', '支持', '持賽', '賽事', '事藉', '藉由', '由贊', '贊助', '助活', '活動', '動捐', '捐輸', '輸經', '經費', '費,', ',以', '以便', '便獲', '獲得', '得在', '在賽', '賽事', '事現', '現場', '場進', '進行', '行廣', '廣告', '告宣', '宣傳', '傳之', '之企', '企業', '業來', '來說', '說,', ',此', '此時', '時政', '政治', '治攪', '攪局', '局必', '必然', '然會', '會減', '減損', '損廣', '廣告', '告傳', '傳播', '播效', '效應', '應,', ',對', '對於', '於掏', '掏出', '出大', '大把', '把銀', '銀兩', '兩,', ',寄', '寄望', '望配', '配合', '合賽', '賽事', '事進', '進行', '行廣', '廣告', '告宣', '宣傳', '傳者', '者來', '來說', '說,', ',必', '必然', '然會', '會咬', '咬牙', '牙切', '切齒', '齒,', ',對', '對於', '於突', '突然', '然攪', '攪局', '局倡', '倡議', '議抵', '抵制', '制者', '者來', '來說', '說,', ',事', '事後', '後必', '必然', '然會', '會抱', '抱持', '持負', '負面', '面態', '態度', '度,', ',政', '政治', '治獻', '獻金', '金或', '或是', '是選', '選舉', '舉贊', '贊助', '助,', ',這', '這些', '些企', '企業', '業金', '金主', '主都', '都會', '會記', '記在', '在心', '心裡', '裡,', ',政', '政治', '治人', '人物', '物看', '看看', '看賽', '賽事', '事贊', '贊助', '助,', ',要', '要是', '是還', '還不', '不識', '識相', '相,', ',體', '體會', '會不', '不出', '出此', '此事', '事敏', '敏感', '感程', '程度', '度,', ',恐', '恐怕', '怕會', '會被', '被人', '人譏', '譏笑', '笑為', '為政', '政治', '治外', '外行', '行。', '。再', '再者', '者就', '就要', '要想', '想到', '到專', '專門', '門轉', '轉播', '播運', '運動', '動賽', '賽事', '事,', ',以', '以便', '便從', '從中', '中獲', '獲取', '取商', '商業', '業利', '利益', '益之', '之媒', '媒體', '體業', '業者', '者,', ',再', '再加', '加上', '上依', '依附', '附在', '在此', '此產', '產業', '業鏈', '鏈相', '相關', '關評', '評論', '論分', '分析', '析專', '專家', '家,', ',還', '還有', '有配', '配合', '合賽', '賽事', '事轉', '轉播', '播進', '進場', '場之', '之廣', '廣告', '告商', '商與', '與企', '企業', '業組', '組織', '織,', ',此', '此種', '種關', '關係', '係綿', '綿密', '密結', '結構', '構複', '複雜', '雜之', '之利', '利益', '益網', '網路', '路,', ',政', '政治', '治人', '人物', '物都', '都要', '要忌', '忌憚', '憚三', '三分', '分,', ',所', '所以', '以如', '如今', '今箭', '箭在', '在弦', '弦上', '上,', ',若', '若要', '要抵', '抵制', '制杯', '杯葛', '葛又', '又不', '不事', '事先', '先早', '早點', '點明', '明講', '講,', ',等', '等到', '到萬', '萬事', '事就', '就緒', '緒再', '再出', '出面', '面攪', '攪局', '局,', ',豈', '豈不', '不就', '就是', '是自', '自討', '討沒', '沒趣', '趣?', '?至', '至於', '於各', '各國', '國政', '政要', '要配', '配合', '合出', '出席', '席運', '運動', '動賽', '賽事', '事開', '開幕', '幕與', '與閉', '閉幕', '幕典', '典禮', '禮,', ',順', '順道', '道進', '進行', '行運', '運動', '動外', '外交', '交高', '高峰', '峰會', '會談', '談,', ',早', '早就', '就因', '因為', '為疫', '疫情', '情影', '影響', '響,', ',各', '各國', '國高', '高層', '層都', '都不', '不願', '願承', '承擔', '擔此', '此種', '種風', '風險', '險,', ',因', '因此', '此,', ',此', '此時', '時聲', '聲稱', '稱所', '所謂', '謂「', '「政', '政治', '治杯', '杯葛', '葛」', '」,', ',將', '將焦', '焦點', '點集', '集中', '中在', '在不', '不出', '出席', '席盛', '盛會', '會,', ',其', '其實', '實根', '根本', '本就', '就無', '無法', '法產', '產生', '生具', '具體', '體影', '影響', '響。', '。多', '多個', '個運', '運動', '動賽', '賽事', '事政', '政要', '要出', '出席', '席致', '致賀', '賀,', ',早', '早就', '就是', '是透', '透過', '過網', '網際', '際網', '網路', '路遠', '遠距', '距傳', '傳送', '送聲', '聲光', '光影', '影像', '像,', ',因', '因此', '此就', '就算', '算端', '端出', '出個', '個理', '理由', '由,', ',聲', '聲稱', '稱杯', '杯葛', '葛出', '出席', '席來', '來表', '表達', '達政', '政治', '治姿', '姿態', '態,', ',恐', '恐怕', '怕媒', '媒體', '體效', '效應', '應更', '更是', '是無', '無足', '足輕', '輕重', '重。', '。美', '美國', '國若', '若是', '是真', '真有', '有心', '心抵', '抵制', '制杯', '杯葛', '葛北', '北京', '京冬', '冬奧', '奧,', ',就', '就必', '必須', '須及', '及早', '早表', '表態', '態,', ',如', '如今', '今在', '在視', '視訊', '訊峰', '峰會', '會剛', '剛過', '過,', ',突', '突然', '然開', '開始', '始釋', '釋放', '放消', '消息', '息,', ',但', '但只', '只是', '是聲', '聲稱', '稱在', '在考', '考慮', '慮抵', '抵制', '制,', ',卻', '卻未', '未能', '能提', '提出', '出肯', '肯定', '定訊', '訊息', '息;', ';講', '講實', '實在', '在話', '話,', ',這', '這就', '就是', '是在', '在釋', '釋放', '放政', '政治', '治氣', '氣球', '球,', ',看', '看看', '看是', '是否', '否有', '有國', '國家', '家願', '願意', '意跟', '跟進', '進扈', '扈從', '從,', ',否', '否則', '則貿', '貿然', '然宣', '宣布', '布抵', '抵制', '制杯', '杯葛', '葛,', ',但', '但卻', '卻沒', '沒有', '有其', '其他', '他國', '國家', '家跟', '跟進', '進時', '時,', ',搞', '搞到', '到千', '千山', '山我', '我獨', '獨行', '行無', '無人', '人相', '相送', '送陪', '陪伴', '伴,', ',這', '這種', '種淒', '淒涼', '涼景', '景況', '況豈', '豈不', '不是', '是弄', '弄巧', '巧成', '成拙', '拙,', ',擺', '擺明', '明讓', '讓自', '自己', '己難', '難看', '看嗎', '嗎?', '?所', '所以', '以美', '美國', '國抵', '抵制', '制北', '北京', '京冬', '冬奧', '奧,', ',不', '不但', '但難', '難有', '有實', '實效', '效風', '風險', '險亦', '亦高', '高。', '。冬', '冬季', '季奧', '奧運', '運其', '其實', '實向', '向來', '來被', '被國', '國際', '際社', '社會', '會譏', '譏為', '為有', '有錢', '錢人', '人賽', '賽事', '事,', ',對', '對於', '於奧', '奧運', '運組', '組織', '織成', '成員', '員國', '國來', '來說', '說,', ',能', '能否', '否在', '在冬', '冬季', '季奧', '奧運', '運闖', '闖出', '出一', '一片', '片天', '天,', ',不', '不但', '但受', '受限', '限於', '於氣', '氣候', '候條', '條件', '件,', ',相', '相關', '關場', '場地', '地、', '、設', '設施', '施、', '、器', '器具', '具以', '以及', '及訓', '訓練', '練過', '過程', '程,', ',就', '就經', '經費', '費預', '預算', '算來', '來說', '說,', ',門', '門檻', '檻相', '相對', '對較', '較高', '高。', '。所', '所以', '以能', '能夠', '夠主', '主辦', '辦冬', '冬季', '季奧', '奧運', '運,', ',不', '不但', '但本', '本身', '身在', '在相', '相關', '關賽', '賽事', '事項', '項目', '目上', '上要', '要有', '有實', '實力', '力奪', '奪牌', '牌,', ',能', '能夠', '夠滿', '滿足', '足賽', '賽事', '事場', '場地', '地與', '與設', '設施', '施規', '規格', '格,', ',其', '其實', '實亦', '亦是', '是國', '國家', '家富', '富強', '強指', '指標', '標,', ',暗', '暗示', '示東', '東道', '道主', '主總', '總算', '算擠', '擠進', '進國', '國際', '際社', '社會', '會富', '富裕', '裕階', '階層', '層行', '行列', '列。', '。所', '所以', '以西', '西方', '方社', '社會', '會某', '某些', '些人', '人士', '士刻', '刻意', '意要', '要抵', '抵制', '制杯', '杯葛', '葛北', '北京', '京冬', '冬奧', '奧賽', '賽事', '事,', ',在', '在相', '相當', '當程', '程度', '度上', '上是', '是具', '具有', '有嫌', '嫌貧', '貧愛', '愛富', '富地', '地位', '位歧', '歧視', '視因', '因素', '素,', ',但', '但此', '此種', '種醜', '醜陋', '陋心', '心態', '態確', '確實', '實是', '是不', '不能', '能放', '放在', '在檯', '檯面', '面,', ',所', '所以', '以當', '當眼', '眼睜', '睜睜', '睜看', '看到', '到中', '中國', '國大', '大陸', '陸獲', '獲得', '得主', '主辦', '辦冬', '冬季', '季奧', '奧運', '運機', '機會', '會,', ',其', '其實', '實就', '就是', '是對', '對其', '其社', '社會', '會富', '富裕', '裕程', '程度', '度加', '加冕', '冕認', '認證', '證,', ',此', '此種', '種難', '難以', '以啟', '啟口', '口內', '內心', '心酸', '酸葡', '葡萄', '萄不', '不痛', '痛快', '快感', '感覺', '覺,', ',或', '或許', '許才', '才是', '是西', '西方', '方社', '社會', '會某', '某些', '些人', '人士', '士倡', '倡議', '議抵', '抵制', '制北', '北京', '京冬', '冬奧', '奧,', ',但', '但卻', '卻又', '又羞', '羞於', '於啟', '啟口', '口之', '之真', '真正', '正原', '原因', '因吧', '吧!', '!']\n",
"\n",
"trigrams:\n",
"['美中兩', '中兩強', '兩強領', '強領導', '領導人', '導人視', '人視訊', '視訊高', '訊高峰', '高峰會', '峰會甫', '會甫告', '甫告落', '告落幕', '落幕,', '幕,各', ',各方', '各方就', '方就傳', '就傳出', '傳出美', '出美國', '美國有', '國有意', '有意抵', '意抵制', '抵制北', '制北京', '北京冬', '京冬季', '冬季奧', '季奧運', '奧運訊', '運訊息', '訊息,', '息,但', ',但政', '但政治', '政治是', '治是要', '是要講', '要講究', '講究時', '究時機', '時機與', '機與節', '與節奏', '節奏,', '奏,就', ',就目', '就目前', '目前端', '前端出', '端出抵', '出抵制', '抵制北', '制北京', '北京冬', '京冬奧', '冬奧所', '奧所能', '所能產', '能產生', '產生各', '生各項', '各項效', '項效應', '效應來', '應來說', '來說,', '說,其', ',其實', '其實相', '實相關', '相關有', '關有利', '有利時', '利時間', '時間節', '間節點', '節點早', '點早就', '早就過', '就過去', '過去,', '去,而', ',而且', '而且展', '且展望', '展望可', '望可能', '可能效', '能效應', '效應亦', '應亦相', '亦相當', '相當有', '當有限', '有限,', '限,華', ',華盛', '華盛頓', '盛頓決', '頓決策', '決策謀', '策謀士', '謀士若', '士若是', '若是不', '是不能', '不能深', '能深思', '深思熟', '思熟慮', '熟慮,', '慮,到', ',到最', '到最後', '最後很', '後很有', '很有可', '有可能', '可能會', '能會弄', '會弄巧', '弄巧成', '巧成拙', '成拙。', '拙。首', '。首先', '首先必', '先必須', '必須指', '須指出', '指出,', '出,在', ',在國', '在國際', '國際社', '際社會', '社會若', '會若要', '若要運', '要運用', '運用抵', '用抵制', '抵制運', '制運動', '運動賽', '動賽事', '賽事,', '事,作', ',作為', '作為政', '為政治', '政治表', '治表態', '表態與', '態與殺', '與殺傷', '殺傷對', '傷對方', '對方國', '方國際', '國際形', '際形象', '形象手', '象手段', '手段,', '段,甚', ',甚至', '甚至是', '至是存', '是存心', '存心要', '心要在', '要在實', '在實質', '實質商', '質商業', '商業利', '業利益', '利益上', '益上攪', '上攪局', '攪局,', '局,必', ',必須', '必須師', '須師出', '師出有', '出有名', '有名才', '名才能', '才能夠', '能夠煽', '夠煽動', '煽動人', '動人心', '人心獲', '心獲得', '獲得響', '得響應', '響應。', '應。因', '。因此', '因此如', '此如何', '如何運', '何運用', '運用特', '用特定', '特定時', '定時間', '時間節', '間節點', '節點,', '點,在', ',在國', '在國際', '國際社', '際社會', '社會對', '會對運', '對運動', '運動賽', '動賽事', '賽事東', '事東道', '東道主', '道主,', '主,在', ',在國', '在國際', '國際事', '際事務', '事務上', '務上負', '上負面', '負面行', '面行為', '行為記', '為記憶', '記憶猶', '憶猶新', '猶新時', '新時斷', '時斷然', '斷然出', '然出招', '出招,', '招,才', ',才能', '才能夠', '能夠鼓', '夠鼓動', '鼓動風', '動風潮', '風潮招', '潮招朋', '招朋引', '朋引伴', '引伴形', '伴形成', '形成氣', '成氣勢', '氣勢。', '勢。儘', '。儘管', '儘管國', '管國際', '國際社', '際社會', '社會每', '會每個', '每個成', '個成員', '成員都', '員都會', '都會唱', '會唱政', '唱政治', '政治莫', '治莫要', '莫要干', '要干預', '干預體', '預體育', '體育高', '育高調', '高調,', '調,尤', ',尤其', '尤其是', '其是強', '是強權', '強權更', '權更是', '更是滿', '是滿嘴', '滿嘴仁', '嘴仁義', '仁義道', '義道德', '道德,', '德,幹', ',幹起', '幹起事', '起事來', '事來卻', '來卻是', '卻是凶', '是凶狠', '凶狠毒', '狠毒辣', '毒辣毫', '辣毫無', '毫無顧', '無顧忌', '顧忌。', '忌。不', '。不過', '不過若', '過若真', '若真要', '真要抵', '要抵制', '抵制運', '制運動', '運動賽', '動賽事', '賽事時', '事時,', '時,基', ',基本', '基本上', '本上具', '上具有', '具有三', '有三個', '三個面', '個面向', '面向可', '向可以', '可以當', '以當成', '當成打', '成打擊', '打擊目', '擊目標', '目標;', '標;其', ';其中', '其中包', '中包括', '包括選', '括選手', '選手不', '手不參', '不參加', '參加賽', '加賽事', '賽事,', '事,企', ',企業', '企業不', '業不捧', '不捧場', '捧場媒', '場媒體', '媒體不', '體不轉', '不轉播', '轉播以', '播以及', '以及政', '及政要', '政要不', '要不出', '不出席', '出席,', '席,以', ',以便', '以便杯', '便杯葛', '杯葛東', '葛東道', '東道主', '道主運', '主運動', '運動賽', '動賽事', '賽事外', '事外交', '外交。', '交。就', '。就目', '就目前', '目前來', '前來說', '來說,', '說,各', ',各方', '各方要', '方要在', '要在明', '在明年', '明年二', '年二月', '二月參', '月參加', '參加北', '加北京', '北京冬', '京冬奧', '冬奧,', '奧,或', ',或是', '或是三', '是三月', '三月北', '月北京', '北京冬', '京冬季', '冬季帕', '季帕奧', '帕奧選', '奧選手', '選手,', '手,早', ',早就', '早就蓄', '就蓄勢', '蓄勢待', '勢待發', '待發等', '發等待', '等待出', '待出場', '出場競', '場競技', '競技,', '技,此', ',此時', '此時若', '時若是', '若是突', '是突然', '突然叫', '然叫停', '叫停,', '停,不', ',不但', '不但對', '但對選', '對選手', '選手準', '手準備', '準備賽', '備賽事', '賽事來', '事來說', '來說,', '說,此', ',此種', '此種干', '種干擾', '干擾作', '擾作梗', '作梗會', '梗會讓', '會讓其', '讓其失', '其失望', '失望憤', '望憤怒', '憤怒;', '怒;許', ';許多', '許多選', '多選手', '選手還', '手還與', '還與商', '與商業', '商業機', '業機構', '機構簽', '構簽有', '簽有代', '有代言', '代言商', '言商品', '商品契', '品契約', '契約,', '約,相', ',相關', '相關廠', '關廠商', '廠商贊', '商贊助', '贊助或', '助或是', '或是實', '是實質', '實質收', '質收益', '收益自', '益自然', '自然就', '然就會', '就會受', '會受到', '受到衝', '到衝擊', '衝擊,', '擊,許', ',許多', '許多選', '多選手', '選手還', '手還期', '還期待', '期待透', '待透過', '透過競', '過競技', '競技奪', '技奪牌', '奪牌,', '牌,奠', ',奠定', '奠定轉', '定轉戰', '轉戰其', '戰其他', '其他職', '他職業', '職業表', '業表演', '表演舞', '演舞臺', '舞臺,', '臺,透', ',透過', '透過賽', '過賽事', '賽事成', '事成績', '成績成', '績成為', '成為開', '為開創', '開創後', '創後續', '後續事', '續事業', '事業跳', '業跳板', '跳板。', '板。假', '。假若', '假若政', '若政府', '政府到', '府到此', '到此時', '此時輕', '時輕舉', '輕舉妄', '舉妄動', '妄動,', '動,臨', ',臨時', '臨時神', '時神來', '神來一', '來一筆', '一筆,', '筆,將', ',將攸', '將攸關', '攸關重', '關重大', '重大利', '大利益', '利益者', '益者無', '者無端', '無端開', '端開罪', '開罪,', '罪,絕', ',絕對', '絕對就', '對就是', '就是在', '是在生', '在生產', '生產政', '產政治', '政治票', '治票房', '票房毒', '房毒藥', '毒藥。', '藥。其', '。其次', '其次就', '次就支', '就支持', '支持賽', '持賽事', '賽事藉', '事藉由', '藉由贊', '由贊助', '贊助活', '助活動', '活動捐', '動捐輸', '捐輸經', '輸經費', '經費,', '費,以', ',以便', '以便獲', '便獲得', '獲得在', '得在賽', '在賽事', '賽事現', '事現場', '現場進', '場進行', '進行廣', '行廣告', '廣告宣', '告宣傳', '宣傳之', '傳之企', '之企業', '企業來', '業來說', '來說,', '說,此', ',此時', '此時政', '時政治', '政治攪', '治攪局', '攪局必', '局必然', '必然會', '然會減', '會減損', '減損廣', '損廣告', '廣告傳', '告傳播', '傳播效', '播效應', '效應,', '應,對', ',對於', '對於掏', '於掏出', '掏出大', '出大把', '大把銀', '把銀兩', '銀兩,', '兩,寄', ',寄望', '寄望配', '望配合', '配合賽', '合賽事', '賽事進', '事進行', '進行廣', '行廣告', '廣告宣', '告宣傳', '宣傳者', '傳者來', '者來說', '來說,', '說,必', ',必然', '必然會', '然會咬', '會咬牙', '咬牙切', '牙切齒', '切齒,', '齒,對', ',對於', '對於突', '於突然', '突然攪', '然攪局', '攪局倡', '局倡議', '倡議抵', '議抵制', '抵制者', '制者來', '者來說', '來說,', '說,事', ',事後', '事後必', '後必然', '必然會', '然會抱', '會抱持', '抱持負', '持負面', '負面態', '面態度', '態度,', '度,政', ',政治', '政治獻', '治獻金', '獻金或', '金或是', '或是選', '是選舉', '選舉贊', '舉贊助', '贊助,', '助,這', ',這些', '這些企', '些企業', '企業金', '業金主', '金主都', '主都會', '都會記', '會記在', '記在心', '在心裡', '心裡,', '裡,政', ',政治', '政治人', '治人物', '人物看', '物看看', '看看賽', '看賽事', '賽事贊', '事贊助', '贊助,', '助,要', ',要是', '要是還', '是還不', '還不識', '不識相', '識相,', '相,體', ',體會', '體會不', '會不出', '不出此', '出此事', '此事敏', '事敏感', '敏感程', '感程度', '程度,', '度,恐', ',恐怕', '恐怕會', '怕會被', '會被人', '被人譏', '人譏笑', '譏笑為', '笑為政', '為政治', '政治外', '治外行', '外行。', '行。再', '。再者', '再者就', '者就要', '就要想', '要想到', '想到專', '到專門', '專門轉', '門轉播', '轉播運', '播運動', '運動賽', '動賽事', '賽事,', '事,以', ',以便', '以便從', '便從中', '從中獲', '中獲取', '獲取商', '取商業', '商業利', '業利益', '利益之', '益之媒', '之媒體', '媒體業', '體業者', '業者,', '者,再', ',再加', '再加上', '加上依', '上依附', '依附在', '附在此', '在此產', '此產業', '產業鏈', '業鏈相', '鏈相關', '相關評', '關評論', '評論分', '論分析', '分析專', '析專家', '專家,', '家,還', ',還有', '還有配', '有配合', '配合賽', '合賽事', '賽事轉', '事轉播', '轉播進', '播進場', '進場之', '場之廣', '之廣告', '廣告商', '告商與', '商與企', '與企業', '企業組', '業組織', '組織,', '織,此', ',此種', '此種關', '種關係', '關係綿', '係綿密', '綿密結', '密結構', '結構複', '構複雜', '複雜之', '雜之利', '之利益', '利益網', '益網路', '網路,', '路,政', ',政治', '政治人', '治人物', '人物都', '物都要', '都要忌', '要忌憚', '忌憚三', '憚三分', '三分,', '分,所', ',所以', '所以如', '以如今', '如今箭', '今箭在', '箭在弦', '在弦上', '弦上,', '上,若', ',若要', '若要抵', '要抵制', '抵制杯', '制杯葛', '杯葛又', '葛又不', '又不事', '不事先', '事先早', '先早點', '早點明', '點明講', '明講,', '講,等', ',等到', '等到萬', '到萬事', '萬事就', '事就緒', '就緒再', '緒再出', '再出面', '出面攪', '面攪局', '攪局,', '局,豈', ',豈不', '豈不就', '不就是', '就是自', '是自討', '自討沒', '討沒趣', '沒趣?', '趣?至', '?至於', '至於各', '於各國', '各國政', '國政要', '政要配', '要配合', '配合出', '合出席', '出席運', '席運動', '運動賽', '動賽事', '賽事開', '事開幕', '開幕與', '幕與閉', '與閉幕', '閉幕典', '幕典禮', '典禮,', '禮,順', ',順道', '順道進', '道進行', '進行運', '行運動', '運動外', '動外交', '外交高', '交高峰', '高峰會', '峰會談', '會談,', '談,早', ',早就', '早就因', '就因為', '因為疫', '為疫情', '疫情影', '情影響', '影響,', '響,各', ',各國', '各國高', '國高層', '高層都', '層都不', '都不願', '不願承', '願承擔', '承擔此', '擔此種', '此種風', '種風險', '風險,', '險,因', ',因此', '因此,', '此,此', ',此時', '此時聲', '時聲稱', '聲稱所', '稱所謂', '所謂「', '謂「政', '「政治', '政治杯', '治杯葛', '杯葛」', '葛」,', '」,將', ',將焦', '將焦點', '焦點集', '點集中', '集中在', '中在不', '在不出', '不出席', '出席盛', '席盛會', '盛會,', '會,其', ',其實', '其實根', '實根本', '根本就', '本就無', '就無法', '無法產', '法產生', '產生具', '生具體', '具體影', '體影響', '影響。', '響。多', '。多個', '多個運', '個運動', '運動賽', '動賽事', '賽事政', '事政要', '政要出', '要出席', '出席致', '席致賀', '致賀,', '賀,早', ',早就', '早就是', '就是透', '是透過', '透過網', '過網際', '網際網', '際網路', '網路遠', '路遠距', '遠距傳', '距傳送', '傳送聲', '送聲光', '聲光影', '光影像', '影像,', '像,因', ',因此', '因此就', '此就算', '就算端', '算端出', '端出個', '出個理', '個理由', '理由,', '由,聲', ',聲稱', '聲稱杯', '稱杯葛', '杯葛出', '葛出席', '出席來', '席來表', '來表達', '表達政', '達政治', '政治姿', '治姿態', '姿態,', '態,恐', ',恐怕', '恐怕媒', '怕媒體', '媒體效', '體效應', '效應更', '應更是', '更是無', '是無足', '無足輕', '足輕重', '輕重。', '重。美', '。美國', '美國若', '國若是', '若是真', '是真有', '真有心', '有心抵', '心抵制', '抵制杯', '制杯葛', '杯葛北', '葛北京', '北京冬', '京冬奧', '冬奧,', '奧,就', ',就必', '就必須', '必須及', '須及早', '及早表', '早表態', '表態,', '態,如', ',如今', '如今在', '今在視', '在視訊', '視訊峰', '訊峰會', '峰會剛', '會剛過', '剛過,', '過,突', ',突然', '突然開', '然開始', '開始釋', '始釋放', '釋放消', '放消息', '消息,', '息,但', ',但只', '但只是', '只是聲', '是聲稱', '聲稱在', '稱在考', '在考慮', '考慮抵', '慮抵制', '抵制,', '制,卻', ',卻未', '卻未能', '未能提', '能提出', '提出肯', '出肯定', '肯定訊', '定訊息', '訊息;', '息;講', ';講實', '講實在', '實在話', '在話,', '話,這', ',這就', '這就是', '就是在', '是在釋', '在釋放', '釋放政', '放政治', '政治氣', '治氣球', '氣球,', '球,看', ',看看', '看看是', '看是否', '是否有', '否有國', '有國家', '國家願', '家願意', '願意跟', '意跟進', '跟進扈', '進扈從', '扈從,', '從,否', ',否則', '否則貿', '則貿然', '貿然宣', '然宣布', '宣布抵', '布抵制', '抵制杯', '制杯葛', '杯葛,', '葛,但', ',但卻', '但卻沒', '卻沒有', '沒有其', '有其他', '其他國', '他國家', '國家跟', '家跟進', '跟進時', '進時,', '時,搞', ',搞到', '搞到千', '到千山', '千山我', '山我獨', '我獨行', '獨行無', '行無人', '無人相', '人相送', '相送陪', '送陪伴', '陪伴,', '伴,這', ',這種', '這種淒', '種淒涼', '淒涼景', '涼景況', '景況豈', '況豈不', '豈不是', '不是弄', '是弄巧', '弄巧成', '巧成拙', '成拙,', '拙,擺', ',擺明', '擺明讓', '明讓自', '讓自己', '自己難', '己難看', '難看嗎', '看嗎?', '嗎?所', '?所以', '所以美', '以美國', '美國抵', '國抵制', '抵制北', '制北京', '北京冬', '京冬奧', '冬奧,', '奧,不', ',不但', '不但難', '但難有', '難有實', '有實效', '實效風', '效風險', '風險亦', '險亦高', '亦高。', '高。冬', '。冬季', '冬季奧', '季奧運', '奧運其', '運其實', '其實向', '實向來', '向來被', '來被國', '被國際', '國際社', '際社會', '社會譏', '會譏為', '譏為有', '為有錢', '有錢人', '錢人賽', '人賽事', '賽事,', '事,對', ',對於', '對於奧', '於奧運', '奧運組', '運組織', '組織成', '織成員', '成員國', '員國來', '國來說', '來說,', '說,能', ',能否', '能否在', '否在冬', '在冬季', '冬季奧', '季奧運', '奧運闖', '運闖出', '闖出一', '出一片', '一片天', '片天,', '天,不', ',不但', '不但受', '但受限', '受限於', '限於氣', '於氣候', '氣候條', '候條件', '條件,', '件,相', ',相關', '相關場', '關場地', '場地、', '地、設', '、設施', '設施、', '施、器', '、器具', '器具以', '具以及', '以及訓', '及訓練', '訓練過', '練過程', '過程,', '程,就', ',就經', '就經費', '經費預', '費預算', '預算來', '算來說', '來說,', '說,門', ',門檻', '門檻相', '檻相對', '相對較', '對較高', '較高。', '高。所', '。所以', '所以能', '以能夠', '能夠主', '夠主辦', '主辦冬', '辦冬季', '冬季奧', '季奧運', '奧運,', '運,不', ',不但', '不但本', '但本身', '本身在', '身在相', '在相關', '相關賽', '關賽事', '賽事項', '事項目', '項目上', '目上要', '上要有', '要有實', '有實力', '實力奪', '力奪牌', '奪牌,', '牌,能', ',能夠', '能夠滿', '夠滿足', '滿足賽', '足賽事', '賽事場', '事場地', '場地與', '地與設', '與設施', '設施規', '施規格', '規格,', '格,其', ',其實', '其實亦', '實亦是', '亦是國', '是國家', '國家富', '家富強', '富強指', '強指標', '指標,', '標,暗', ',暗示', '暗示東', '示東道', '東道主', '道主總', '主總算', '總算擠', '算擠進', '擠進國', '進國際', '國際社', '際社會', '社會富', '會富裕', '富裕階', '裕階層', '階層行', '層行列', '行列。', '列。所', '。所以', '所以西', '以西方', '西方社', '方社會', '社會某', '會某些', '某些人', '些人士', '人士刻', '士刻意', '刻意要', '意要抵', '要抵制', '抵制杯', '制杯葛', '杯葛北', '葛北京', '北京冬', '京冬奧', '冬奧賽', '奧賽事', '賽事,', '事,在', ',在相', '在相當', '相當程', '當程度', '程度上', '度上是', '上是具', '是具有', '具有嫌', '有嫌貧', '嫌貧愛', '貧愛富', '愛富地', '富地位', '地位歧', '位歧視', '歧視因', '視因素', '因素,', '素,但', ',但此', '但此種', '此種醜', '種醜陋', '醜陋心', '陋心態', '心態確', '態確實', '確實是', '實是不', '是不能', '不能放', '能放在', '放在檯', '在檯面', '檯面,', '面,所', ',所以', '所以當', '以當眼', '當眼睜', '眼睜睜', '睜睜看', '睜看到', '看到中', '到中國', '中國大', '國大陸', '大陸獲', '陸獲得', '獲得主', '得主辦', '主辦冬', '辦冬季', '冬季奧', '季奧運', '奧運機', '運機會', '機會,', '會,其', ',其實', '其實就', '實就是', '就是對', '是對其', '對其社', '其社會', '社會富', '會富裕', '富裕程', '裕程度', '程度加', '度加冕', '加冕認', '冕認證', '認證,', '證,此', ',此種', '此種難', '種難以', '難以啟', '以啟口', '啟口內', '口內心', '內心酸', '心酸葡', '酸葡萄', '葡萄不', '萄不痛', '不痛快', '痛快感', '快感覺', '感覺,', '覺,或', ',或許', '或許才', '許才是', '才是西', '是西方', '西方社', '方社會', '社會某', '會某些', '某些人', '些人士', '人士倡', '士倡議', '倡議抵', '議抵制', '抵制北', '制北京', '北京冬', '京冬奧', '冬奧,', '奧,但', ',但卻', '但卻又', '卻又羞', '又羞於', '羞於啟', '於啟口', '啟口之', '口之真', '之真正', '真正原', '正原因', '原因吧', '因吧!', '吧!', '!']\n",
"\n",
"quadrigrams:\n",
"['美中兩強', '中兩強領', '兩強領導', '強領導人', '領導人視', '導人視訊', '人視訊高', '視訊高峰', '訊高峰會', '高峰會甫', '峰會甫告', '會甫告落', '甫告落幕', '告落幕,', '落幕,各', '幕,各方', ',各方就', '各方就傳', '方就傳出', '就傳出美', '傳出美國', '出美國有', '美國有意', '國有意抵', '有意抵制', '意抵制北', '抵制北京', '制北京冬', '北京冬季', '京冬季奧', '冬季奧運', '季奧運訊', '奧運訊息', '運訊息,', '訊息,但', '息,但政', ',但政治', '但政治是', '政治是要', '治是要講', '是要講究', '要講究時', '講究時機', '究時機與', '時機與節', '機與節奏', '與節奏,', '節奏,就', '奏,就目', ',就目前', '就目前端', '目前端出', '前端出抵', '端出抵制', '出抵制北', '抵制北京', '制北京冬', '北京冬奧', '京冬奧所', '冬奧所能', '奧所能產', '所能產生', '能產生各', '產生各項', '生各項效', '各項效應', '項效應來', '效應來說', '應來說,', '來說,其', '說,其實', ',其實相', '其實相關', '實相關有', '相關有利', '關有利時', '有利時間', '利時間節', '時間節點', '間節點早', '節點早就', '點早就過', '早就過去', '就過去,', '過去,而', '去,而且', ',而且展', '而且展望', '且展望可', '展望可能', '望可能效', '可能效應', '能效應亦', '效應亦相', '應亦相當', '亦相當有', '相當有限', '當有限,', '有限,華', '限,華盛', ',華盛頓', '華盛頓決', '盛頓決策', '頓決策謀', '決策謀士', '策謀士若', '謀士若是', '士若是不', '若是不能', '是不能深', '不能深思', '能深思熟', '深思熟慮', '思熟慮,', '熟慮,到', '慮,到最', ',到最後', '到最後很', '最後很有', '後很有可', '很有可能', '有可能會', '可能會弄', '能會弄巧', '會弄巧成', '弄巧成拙', '巧成拙。', '成拙。首', '拙。首先', '。首先必', '首先必須', '先必須指', '必須指出', '須指出,', '指出,在', '出,在國', ',在國際', '在國際社', '國際社會', '際社會若', '社會若要', '會若要運', '若要運用', '要運用抵', '運用抵制', '用抵制運', '抵制運動', '制運動賽', '運動賽事', '動賽事,', '賽事,作', '事,作為', ',作為政', '作為政治', '為政治表', '政治表態', '治表態與', '表態與殺', '態與殺傷', '與殺傷對', '殺傷對方', '傷對方國', '對方國際', '方國際形', '國際形象', '際形象手', '形象手段', '象手段,', '手段,甚', '段,甚至', ',甚至是', '甚至是存', '至是存心', '是存心要', '存心要在', '心要在實', '要在實質', '在實質商', '實質商業', '質商業利', '商業利益', '業利益上', '利益上攪', '益上攪局', '上攪局,', '攪局,必', '局,必須', ',必須師', '必須師出', '須師出有', '師出有名', '出有名才', '有名才能', '名才能夠', '才能夠煽', '能夠煽動', '夠煽動人', '煽動人心', '動人心獲', '人心獲得', '心獲得響', '獲得響應', '得響應。', '響應。因', '應。因此', '。因此如', '因此如何', '此如何運', '如何運用', '何運用特', '運用特定', '用特定時', '特定時間', '定時間節', '時間節點', '間節點,', '節點,在', '點,在國', ',在國際', '在國際社', '國際社會', '際社會對', '社會對運', '會對運動', '對運動賽', '運動賽事', '動賽事東', '賽事東道', '事東道主', '東道主,', '道主,在', '主,在國', ',在國際', '在國際事', '國際事務', '際事務上', '事務上負', '務上負面', '上負面行', '負面行為', '面行為記', '行為記憶', '為記憶猶', '記憶猶新', '憶猶新時', '猶新時斷', '新時斷然', '時斷然出', '斷然出招', '然出招,', '出招,才', '招,才能', ',才能夠', '才能夠鼓', '能夠鼓動', '夠鼓動風', '鼓動風潮', '動風潮招', '風潮招朋', '潮招朋引', '招朋引伴', '朋引伴形', '引伴形成', '伴形成氣', '形成氣勢', '成氣勢。', '氣勢。儘', '勢。儘管', '。儘管國', '儘管國際', '管國際社', '國際社會', '際社會每', '社會每個', '會每個成', '每個成員', '個成員都', '成員都會', '員都會唱', '都會唱政', '會唱政治', '唱政治莫', '政治莫要', '治莫要干', '莫要干預', '要干預體', '干預體育', '預體育高', '體育高調', '育高調,', '高調,尤', '調,尤其', ',尤其是', '尤其是強', '其是強權', '是強權更', '強權更是', '權更是滿', '更是滿嘴', '是滿嘴仁', '滿嘴仁義', '嘴仁義道', '仁義道德', '義道德,', '道德,幹', '德,幹起', ',幹起事', '幹起事來', '起事來卻', '事來卻是', '來卻是凶', '卻是凶狠', '是凶狠毒', '凶狠毒辣', '狠毒辣毫', '毒辣毫無', '辣毫無顧', '毫無顧忌', '無顧忌。', '顧忌。不', '忌。不過', '。不過若', '不過若真', '過若真要', '若真要抵', '真要抵制', '要抵制運', '抵制運動', '制運動賽', '運動賽事', '動賽事時', '賽事時,', '事時,基', '時,基本', ',基本上', '基本上具', '本上具有', '上具有三', '具有三個', '有三個面', '三個面向', '個面向可', '面向可以', '向可以當', '可以當成', '以當成打', '當成打擊', '成打擊目', '打擊目標', '擊目標;', '目標;其', '標;其中', ';其中包', '其中包括', '中包括選', '包括選手', '括選手不', '選手不參', '手不參加', '不參加賽', '參加賽事', '加賽事,', '賽事,企', '事,企業', ',企業不', '企業不捧', '業不捧場', '不捧場媒', '捧場媒體', '場媒體不', '媒體不轉', '體不轉播', '不轉播以', '轉播以及', '播以及政', '以及政要', '及政要不', '政要不出', '要不出席', '不出席,', '出席,以', '席,以便', ',以便杯', '以便杯葛', '便杯葛東', '杯葛東道', '葛東道主', '東道主運', '道主運動', '主運動賽', '運動賽事', '動賽事外', '賽事外交', '事外交。', '外交。就', '交。就目', '。就目前', '就目前來', '目前來說', '前來說,', '來說,各', '說,各方', ',各方要', '各方要在', '方要在明', '要在明年', '在明年二', '明年二月', '年二月參', '二月參加', '月參加北', '參加北京', '加北京冬', '北京冬奧', '京冬奧,', '冬奧,或', '奧,或是', ',或是三', '或是三月', '是三月北', '三月北京', '月北京冬', '北京冬季', '京冬季帕', '冬季帕奧', '季帕奧選', '帕奧選手', '奧選手,', '選手,早', '手,早就', ',早就蓄', '早就蓄勢', '就蓄勢待', '蓄勢待發', '勢待發等', '待發等待', '發等待出', '等待出場', '待出場競', '出場競技', '場競技,', '競技,此', '技,此時', ',此時若', '此時若是', '時若是突', '若是突然', '是突然叫', '突然叫停', '然叫停,', '叫停,不', '停,不但', ',不但對', '不但對選', '但對選手', '對選手準', '選手準備', '手準備賽', '準備賽事', '備賽事來', '賽事來說', '事來說,', '來說,此', '說,此種', ',此種干', '此種干擾', '種干擾作', '干擾作梗', '擾作梗會', '作梗會讓', '梗會讓其', '會讓其失', '讓其失望', '其失望憤', '失望憤怒', '望憤怒;', '憤怒;許', '怒;許多', ';許多選', '許多選手', '多選手還', '選手還與', '手還與商', '還與商業', '與商業機', '商業機構', '業機構簽', '機構簽有', '構簽有代', '簽有代言', '有代言商', '代言商品', '言商品契', '商品契約', '品契約,', '契約,相', '約,相關', ',相關廠', '相關廠商', '關廠商贊', '廠商贊助', '商贊助或', '贊助或是', '助或是實', '或是實質', '是實質收', '實質收益', '質收益自', '收益自然', '益自然就', '自然就會', '然就會受', '就會受到', '會受到衝', '受到衝擊', '到衝擊,', '衝擊,許', '擊,許多', ',許多選', '許多選手', '多選手還', '選手還期', '手還期待', '還期待透', '期待透過', '待透過競', '透過競技', '過競技奪', '競技奪牌', '技奪牌,', '奪牌,奠', '牌,奠定', ',奠定轉', '奠定轉戰', '定轉戰其', '轉戰其他', '戰其他職', '其他職業', '他職業表', '職業表演', '業表演舞', '表演舞臺', '演舞臺,', '舞臺,透', '臺,透過', ',透過賽', '透過賽事', '過賽事成', '賽事成績', '事成績成', '成績成為', '績成為開', '成為開創', '為開創後', '開創後續', '創後續事', '後續事業', '續事業跳', '事業跳板', '業跳板。', '跳板。假', '板。假若', '。假若政', '假若政府', '若政府到', '政府到此', '府到此時', '到此時輕', '此時輕舉', '時輕舉妄', '輕舉妄動', '舉妄動,', '妄動,臨', '動,臨時', ',臨時神', '臨時神來', '時神來一', '神來一筆', '來一筆,', '一筆,將', '筆,將攸', ',將攸關', '將攸關重', '攸關重大', '關重大利', '重大利益', '大利益者', '利益者無', '益者無端', '者無端開', '無端開罪', '端開罪,', '開罪,絕', '罪,絕對', ',絕對就', '絕對就是', '對就是在', '就是在生', '是在生產', '在生產政', '生產政治', '產政治票', '政治票房', '治票房毒', '票房毒藥', '房毒藥。', '毒藥。其', '藥。其次', '。其次就', '其次就支', '次就支持', '就支持賽', '支持賽事', '持賽事藉', '賽事藉由', '事藉由贊', '藉由贊助', '由贊助活', '贊助活動', '助活動捐', '活動捐輸', '動捐輸經', '捐輸經費', '輸經費,', '經費,以', '費,以便', ',以便獲', '以便獲得', '便獲得在', '獲得在賽', '得在賽事', '在賽事現', '賽事現場', '事現場進', '現場進行', '場進行廣', '進行廣告', '行廣告宣', '廣告宣傳', '告宣傳之', '宣傳之企', '傳之企業', '之企業來', '企業來說', '業來說,', '來說,此', '說,此時', ',此時政', '此時政治', '時政治攪', '政治攪局', '治攪局必', '攪局必然', '局必然會', '必然會減', '然會減損', '會減損廣', '減損廣告', '損廣告傳', '廣告傳播', '告傳播效', '傳播效應', '播效應,', '效應,對', '應,對於', ',對於掏', '對於掏出', '於掏出大', '掏出大把', '出大把銀', '大把銀兩', '把銀兩,', '銀兩,寄', '兩,寄望', ',寄望配', '寄望配合', '望配合賽', '配合賽事', '合賽事進', '賽事進行', '事進行廣', '進行廣告', '行廣告宣', '廣告宣傳', '告宣傳者', '宣傳者來', '傳者來說', '者來說,', '來說,必', '說,必然', ',必然會', '必然會咬', '然會咬牙', '會咬牙切', '咬牙切齒', '牙切齒,', '切齒,對', '齒,對於', ',對於突', '對於突然', '於突然攪', '突然攪局', '然攪局倡', '攪局倡議', '局倡議抵', '倡議抵制', '議抵制者', '抵制者來', '制者來說', '者來說,', '來說,事', '說,事後', ',事後必', '事後必然', '後必然會', '必然會抱', '然會抱持', '會抱持負', '抱持負面', '持負面態', '負面態度', '面態度,', '態度,政', '度,政治', ',政治獻', '政治獻金', '治獻金或', '獻金或是', '金或是選', '或是選舉', '是選舉贊', '選舉贊助', '舉贊助,', '贊助,這', '助,這些', ',這些企', '這些企業', '些企業金', '企業金主', '業金主都', '金主都會', '主都會記', '都會記在', '會記在心', '記在心裡', '在心裡,', '心裡,政', '裡,政治', ',政治人', '政治人物', '治人物看', '人物看看', '物看看賽', '看看賽事', '看賽事贊', '賽事贊助', '事贊助,', '贊助,要', '助,要是', ',要是還', '要是還不', '是還不識', '還不識相', '不識相,', '識相,體', '相,體會', ',體會不', '體會不出', '會不出此', '不出此事', '出此事敏', '此事敏感', '事敏感程', '敏感程度', '感程度,', '程度,恐', '度,恐怕', ',恐怕會', '恐怕會被', '怕會被人', '會被人譏', '被人譏笑', '人譏笑為', '譏笑為政', '笑為政治', '為政治外', '政治外行', '治外行。', '外行。再', '行。再者', '。再者就', '再者就要', '者就要想', '就要想到', '要想到專', '想到專門', '到專門轉', '專門轉播', '門轉播運', '轉播運動', '播運動賽', '運動賽事', '動賽事,', '賽事,以', '事,以便', ',以便從', '以便從中', '便從中獲', '從中獲取', '中獲取商', '獲取商業', '取商業利', '商業利益', '業利益之', '利益之媒', '益之媒體', '之媒體業', '媒體業者', '體業者,', '業者,再', '者,再加', ',再加上', '再加上依', '加上依附', '上依附在', '依附在此', '附在此產', '在此產業', '此產業鏈', '產業鏈相', '業鏈相關', '鏈相關評', '相關評論', '關評論分', '評論分析', '論分析專', '分析專家', '析專家,', '專家,還', '家,還有', ',還有配', '還有配合', '有配合賽', '配合賽事', '合賽事轉', '賽事轉播', '事轉播進', '轉播進場', '播進場之', '進場之廣', '場之廣告', '之廣告商', '廣告商與', '告商與企', '商與企業', '與企業組', '企業組織', '業組織,', '組織,此', '織,此種', ',此種關', '此種關係', '種關係綿', '關係綿密', '係綿密結', '綿密結構', '密結構複', '結構複雜', '構複雜之', '複雜之利', '雜之利益', '之利益網', '利益網路', '益網路,', '網路,政', '路,政治', ',政治人', '政治人物', '治人物都', '人物都要', '物都要忌', '都要忌憚', '要忌憚三', '忌憚三分', '憚三分,', '三分,所', '分,所以', ',所以如', '所以如今', '以如今箭', '如今箭在', '今箭在弦', '箭在弦上', '在弦上,', '弦上,若', '上,若要', ',若要抵', '若要抵制', '要抵制杯', '抵制杯葛', '制杯葛又', '杯葛又不', '葛又不事', '又不事先', '不事先早', '事先早點', '先早點明', '早點明講', '點明講,', '明講,等', '講,等到', ',等到萬', '等到萬事', '到萬事就', '萬事就緒', '事就緒再', '就緒再出', '緒再出面', '再出面攪', '出面攪局', '面攪局,', '攪局,豈', '局,豈不', ',豈不就', '豈不就是', '不就是自', '就是自討', '是自討沒', '自討沒趣', '討沒趣?', '沒趣?至', '趣?至於', '?至於各', '至於各國', '於各國政', '各國政要', '國政要配', '政要配合', '要配合出', '配合出席', '合出席運', '出席運動', '席運動賽', '運動賽事', '動賽事開', '賽事開幕', '事開幕與', '開幕與閉', '幕與閉幕', '與閉幕典', '閉幕典禮', '幕典禮,', '典禮,順', '禮,順道', ',順道進', '順道進行', '道進行運', '進行運動', '行運動外', '運動外交', '動外交高', '外交高峰', '交高峰會', '高峰會談', '峰會談,', '會談,早', '談,早就', ',早就因', '早就因為', '就因為疫', '因為疫情', '為疫情影', '疫情影響', '情影響,', '影響,各', '響,各國', ',各國高', '各國高層', '國高層都', '高層都不', '層都不願', '都不願承', '不願承擔', '願承擔此', '承擔此種', '擔此種風', '此種風險', '種風險,', '風險,因', '險,因此', ',因此,', '因此,此', '此,此時', ',此時聲', '此時聲稱', '時聲稱所', '聲稱所謂', '稱所謂「', '所謂「政', '謂「政治', '「政治杯', '政治杯葛', '治杯葛」', '杯葛」,', '葛」,將', '」,將焦', ',將焦點', '將焦點集', '焦點集中', '點集中在', '集中在不', '中在不出', '在不出席', '不出席盛', '出席盛會', '席盛會,', '盛會,其', '會,其實', ',其實根', '其實根本', '實根本就', '根本就無', '本就無法', '就無法產', '無法產生', '法產生具', '產生具體', '生具體影', '具體影響', '體影響。', '影響。多', '響。多個', '。多個運', '多個運動', '個運動賽', '運動賽事', '動賽事政', '賽事政要', '事政要出', '政要出席', '要出席致', '出席致賀', '席致賀,', '致賀,早', '賀,早就', ',早就是', '早就是透', '就是透過', '是透過網', '透過網際', '過網際網', '網際網路', '際網路遠', '網路遠距', '路遠距傳', '遠距傳送', '距傳送聲', '傳送聲光', '送聲光影', '聲光影像', '光影像,', '影像,因', '像,因此', ',因此就', '因此就算', '此就算端', '就算端出', '算端出個', '端出個理', '出個理由', '個理由,', '理由,聲', '由,聲稱', ',聲稱杯', '聲稱杯葛', '稱杯葛出', '杯葛出席', '葛出席來', '出席來表', '席來表達', '來表達政', '表達政治', '達政治姿', '政治姿態', '治姿態,', '姿態,恐', '態,恐怕', ',恐怕媒', '恐怕媒體', '怕媒體效', '媒體效應', '體效應更', '效應更是', '應更是無', '更是無足', '是無足輕', '無足輕重', '足輕重。', '輕重。美', '重。美國', '。美國若', '美國若是', '國若是真', '若是真有', '是真有心', '真有心抵', '有心抵制', '心抵制杯', '抵制杯葛', '制杯葛北', '杯葛北京', '葛北京冬', '北京冬奧', '京冬奧,', '冬奧,就', '奧,就必', ',就必須', '就必須及', '必須及早', '須及早表', '及早表態', '早表態,', '表態,如', '態,如今', ',如今在', '如今在視', '今在視訊', '在視訊峰', '視訊峰會', '訊峰會剛', '峰會剛過', '會剛過,', '剛過,突', '過,突然', ',突然開', '突然開始', '然開始釋', '開始釋放', '始釋放消', '釋放消息', '放消息,', '消息,但', '息,但只', ',但只是', '但只是聲', '只是聲稱', '是聲稱在', '聲稱在考', '稱在考慮', '在考慮抵', '考慮抵制', '慮抵制,', '抵制,卻', '制,卻未', ',卻未能', '卻未能提', '未能提出', '能提出肯', '提出肯定', '出肯定訊', '肯定訊息', '定訊息;', '訊息;講', '息;講實', ';講實在', '講實在話', '實在話,', '在話,這', '話,這就', ',這就是', '這就是在', '就是在釋', '是在釋放', '在釋放政', '釋放政治', '放政治氣', '政治氣球', '治氣球,', '氣球,看', '球,看看', ',看看是', '看看是否', '看是否有', '是否有國', '否有國家', '有國家願', '國家願意', '家願意跟', '願意跟進', '意跟進扈', '跟進扈從', '進扈從,', '扈從,否', '從,否則', ',否則貿', '否則貿然', '則貿然宣', '貿然宣布', '然宣布抵', '宣布抵制', '布抵制杯', '抵制杯葛', '制杯葛,', '杯葛,但', '葛,但卻', ',但卻沒', '但卻沒有', '卻沒有其', '沒有其他', '有其他國', '其他國家', '他國家跟', '國家跟進', '家跟進時', '跟進時,', '進時,搞', '時,搞到', ',搞到千', '搞到千山', '到千山我', '千山我獨', '山我獨行', '我獨行無', '獨行無人', '行無人相', '無人相送', '人相送陪', '相送陪伴', '送陪伴,', '陪伴,這', '伴,這種', ',這種淒', '這種淒涼', '種淒涼景', '淒涼景況', '涼景況豈', '景況豈不', '況豈不是', '豈不是弄', '不是弄巧', '是弄巧成', '弄巧成拙', '巧成拙,', '成拙,擺', '拙,擺明', ',擺明讓', '擺明讓自', '明讓自己', '讓自己難', '自己難看', '己難看嗎', '難看嗎?', '看嗎?所', '嗎?所以', '?所以美', '所以美國', '以美國抵', '美國抵制', '國抵制北', '抵制北京', '制北京冬', '北京冬奧', '京冬奧,', '冬奧,不', '奧,不但', ',不但難', '不但難有', '但難有實', '難有實效', '有實效風', '實效風險', '效風險亦', '風險亦高', '險亦高。', '亦高。冬', '高。冬季', '。冬季奧', '冬季奧運', '季奧運其', '奧運其實', '運其實向', '其實向來', '實向來被', '向來被國', '來被國際', '被國際社', '國際社會', '際社會譏', '社會譏為', '會譏為有', '譏為有錢', '為有錢人', '有錢人賽', '錢人賽事', '人賽事,', '賽事,對', '事,對於', ',對於奧', '對於奧運', '於奧運組', '奧運組織', '運組織成', '組織成員', '織成員國', '成員國來', '員國來說', '國來說,', '來說,能', '說,能否', ',能否在', '能否在冬', '否在冬季', '在冬季奧', '冬季奧運', '季奧運闖', '奧運闖出', '運闖出一', '闖出一片', '出一片天', '一片天,', '片天,不', '天,不但', ',不但受', '不但受限', '但受限於', '受限於氣', '限於氣候', '於氣候條', '氣候條件', '候條件,', '條件,相', '件,相關', ',相關場', '相關場地', '關場地、', '場地、設', '地、設施', '、設施、', '設施、器', '施、器具', '、器具以', '器具以及', '具以及訓', '以及訓練', '及訓練過', '訓練過程', '練過程,', '過程,就', '程,就經', ',就經費', '就經費預', '經費預算', '費預算來', '預算來說', '算來說,', '來說,門', '說,門檻', ',門檻相', '門檻相對', '檻相對較', '相對較高', '對較高。', '較高。所', '高。所以', '。所以能', '所以能夠', '以能夠主', '能夠主辦', '夠主辦冬', '主辦冬季', '辦冬季奧', '冬季奧運', '季奧運,', '奧運,不', '運,不但', ',不但本', '不但本身', '但本身在', '本身在相', '身在相關', '在相關賽', '相關賽事', '關賽事項', '賽事項目', '事項目上', '項目上要', '目上要有', '上要有實', '要有實力', '有實力奪', '實力奪牌', '力奪牌,', '奪牌,能', '牌,能夠', ',能夠滿', '能夠滿足', '夠滿足賽', '滿足賽事', '足賽事場', '賽事場地', '事場地與', '場地與設', '地與設施', '與設施規', '設施規格', '施規格,', '規格,其', '格,其實', ',其實亦', '其實亦是', '實亦是國', '亦是國家', '是國家富', '國家富強', '家富強指', '富強指標', '強指標,', '指標,暗', '標,暗示', ',暗示東', '暗示東道', '示東道主', '東道主總', '道主總算', '主總算擠', '總算擠進', '算擠進國', '擠進國際', '進國際社', '國際社會', '際社會富', '社會富裕', '會富裕階', '富裕階層', '裕階層行', '階層行列', '層行列。', '行列。所', '列。所以', '。所以西', '所以西方', '以西方社', '西方社會', '方社會某', '社會某些', '會某些人', '某些人士', '些人士刻', '人士刻意', '士刻意要', '刻意要抵', '意要抵制', '要抵制杯', '抵制杯葛', '制杯葛北', '杯葛北京', '葛北京冬', '北京冬奧', '京冬奧賽', '冬奧賽事', '奧賽事,', '賽事,在', '事,在相', ',在相當', '在相當程', '相當程度', '當程度上', '程度上是', '度上是具', '上是具有', '是具有嫌', '具有嫌貧', '有嫌貧愛', '嫌貧愛富', '貧愛富地', '愛富地位', '富地位歧', '地位歧視', '位歧視因', '歧視因素', '視因素,', '因素,但', '素,但此', ',但此種', '但此種醜', '此種醜陋', '種醜陋心', '醜陋心態', '陋心態確', '心態確實', '態確實是', '確實是不', '實是不能', '是不能放', '不能放在', '能放在檯', '放在檯面', '在檯面,', '檯面,所', '面,所以', ',所以當', '所以當眼', '以當眼睜', '當眼睜睜', '眼睜睜看', '睜睜看到', '睜看到中', '看到中國', '到中國大', '中國大陸', '國大陸獲', '大陸獲得', '陸獲得主', '獲得主辦', '得主辦冬', '主辦冬季', '辦冬季奧', '冬季奧運', '季奧運機', '奧運機會', '運機會,', '機會,其', '會,其實', ',其實就', '其實就是', '實就是對', '就是對其', '是對其社', '對其社會', '其社會富', '社會富裕', '會富裕程', '富裕程度', '裕程度加', '程度加冕', '度加冕認', '加冕認證', '冕認證,', '認證,此', '證,此種', ',此種難', '此種難以', '種難以啟', '難以啟口', '以啟口內', '啟口內心', '口內心酸', '內心酸葡', '心酸葡萄', '酸葡萄不', '葡萄不痛', '萄不痛快', '不痛快感', '痛快感覺', '快感覺,', '感覺,或', '覺,或許', ',或許才', '或許才是', '許才是西', '才是西方', '是西方社', '西方社會', '方社會某', '社會某些', '會某些人', '某些人士', '些人士倡', '人士倡議', '士倡議抵', '倡議抵制', '議抵制北', '抵制北京', '制北京冬', '北京冬奧', '京冬奧,', '冬奧,但', '奧,但卻', ',但卻又', '但卻又羞', '卻又羞於', '又羞於啟', '羞於啟口', '於啟口之', '啟口之真', '口之真正', '之真正原', '真正原因', '正原因吧', '原因吧!', '因吧!', '吧!', '!']\n"
]
}
],
"source": [
"article = '美中兩強領導人視訊高峰會甫告落幕,各方就傳出美國有意抵制北京冬季奧運訊息,但政治是要講究時機與節奏,就目前端出抵制北京冬奧所能產生各項效應來說,其實相關有利時間節點早就過去,而且展望可能效應亦相當有限,華盛頓決策謀士若是不能深思熟慮,到最後很有可能會弄巧成拙。首先必須指出,在國際社會若要運用抵制運動賽事,作為政治表態與殺傷對方國際形象手段,甚至是存心要在實質商業利益上攪局,必須師出有名才能夠煽動人心獲得響應。因此如何運用特定時間節點,在國際社會對運動賽事東道主,在國際事務上負面行為記憶猶新時斷然出招,才能夠鼓動風潮招朋引伴形成氣勢。儘管國際社會每個成員都會唱政治莫要干預體育高調,尤其是強權更是滿嘴仁義道德,幹起事來卻是凶狠毒辣毫無顧忌。不過若真要抵制運動賽事時,基本上具有三個面向可以當成打擊目標;其中包括選手不參加賽事,企業不捧場媒體不轉播以及政要不出席,以便杯葛東道主運動賽事外交。就目前來說,各方要在明年二月參加北京冬奧,或是三月北京冬季帕奧選手,早就蓄勢待發等待出場競技,此時若是突然叫停,不但對選手準備賽事來說,此種干擾作梗會讓其失望憤怒;許多選手還與商業機構簽有代言商品契約,相關廠商贊助或是實質收益自然就會受到衝擊,許多選手還期待透過競技奪牌,奠定轉戰其他職業表演舞臺,透過賽事成績成為開創後續事業跳板。假若政府到此時輕舉妄動,臨時神來一筆,將攸關重大利益者無端開罪,絕對就是在生產政治票房毒藥。其次就支持賽事藉由贊助活動捐輸經費,以便獲得在賽事現場進行廣告宣傳之企業來說,此時政治攪局必然會減損廣告傳播效應,對於掏出大把銀兩,寄望配合賽事進行廣告宣傳者來說,必然會咬牙切齒,對於突然攪局倡議抵制者來說,事後必然會抱持負面態度,政治獻金或是選舉贊助,這些企業金主都會記在心裡,政治人物看看賽事贊助,要是還不識相,體會不出此事敏感程度,恐怕會被人譏笑為政治外行。再者就要想到專門轉播運動賽事,以便從中獲取商業利益之媒體業者,再加上依附在此產業鏈相關評論分析專家,還有配合賽事轉播進場之廣告商與企業組織,此種關係綿密結構複雜之利益網路,政治人物都要忌憚三分,所以如今箭在弦上,若要抵制杯葛又不事先早點明講,等到萬事就緒再出面攪局,豈不就是自討沒趣?至於各國政要配合出席運動賽事開幕與閉幕典禮,順道進行運動外交高峰會談,早就因為疫情影響,各國高層都不願承擔此種風險,因此,此時聲稱所謂「政治杯葛」,將焦點集中在不出席盛會,其實根本就無法產生具體影響。多個運動賽事政要出席致賀,早就是透過網際網路遠距傳送聲光影像,因此就算端出個理由,聲稱杯葛出席來表達政治姿態,恐怕媒體效應更是無足輕重。美國若是真有心抵制杯葛北京冬奧,就必須及早表態,如今在視訊峰會剛過,突然開始釋放消息,但只是聲稱在考慮抵制,卻未能提出肯定訊息;講實在話,這就是在釋放政治氣球,看看是否有國家願意跟進扈從,否則貿然宣布抵制杯葛,但卻沒有其他國家跟進時,搞到千山我獨行無人相送陪伴,這種淒涼景況豈不是弄巧成拙,擺明讓自己難看嗎?所以美國抵制北京冬奧,不但難有實效風險亦高。冬季奧運其實向來被國際社會譏為有錢人賽事,對於奧運組織成員國來說,能否在冬季奧運闖出一片天,不但受限於氣候條件,相關場地、設施、器具以及訓練過程,就經費預算來說,門檻相對較高。所以能夠主辦冬季奧運,不但本身在相關賽事項目上要有實力奪牌,能夠滿足賽事場地與設施規格,其實亦是國家富強指標,暗示東道主總算擠進國際社會富裕階層行列。所以西方社會某些人士刻意要抵制杯葛北京冬奧賽事,在相當程度上是具有嫌貧愛富地位歧視因素,但此種醜陋心態確實是不能放在檯面,所以當眼睜睜看到中國大陸獲得主辦冬季奧運機會,其實就是對其社會富裕程度加冕認證,此種難以啟口內心酸葡萄不痛快感覺,或許才是西方社會某些人士倡議抵制北京冬奧,但卻又羞於啟口之真正原因吧!'\n",
"\n",
"# 兩個漢字一組\n",
"\n",
"bigrams = []\n",
"for i in range(len(article)):\n",
" bigrams.append(article[i:i+2])\n",
" \n",
"trigrams = []\n",
"for i in range(len(article)):\n",
" trigrams.append(article[i:i+3])\n",
" \n",
"quadrigrams = []\n",
"for i in range(len(article)):\n",
" quadrigrams.append(article[i:i+4])\n",
" \n",
"print(f\"bigrams:\\n{bigrams}\")\n",
"print()\n",
"print(f\"trigrams:\\n{trigrams}\")\n",
"print()\n",
"print(f\"quadrigrams:\\n{quadrigrams}\")"
]
},
{
"cell_type": "code",
"execution_count": 58,
"id": "cd78275e",
"metadata": {},
"outputs": [],
"source": [
"# 以上三組程式,可以把字串兩個字元(三個、四個、五個...) 為一組提取出來。\n",
"# 但是,其實這些程式內容除了要提取的字元數不同外,其他的其實是一樣的。\n",
"# 所以,我們整合為一個:\n",
"\n",
"def nElem(seq, n):\n",
" '''\n",
" takes two arguments: a sequence and a number n\n",
" returns nGrams of the sequence\n",
" '''\n",
" res = []\n",
" for i in range(len(seq)-(n-1)):\n",
" res.append(seq[i:i+n])\n",
" return res"
]
},
{
"cell_type": "code",
"execution_count": 60,
"id": "85c663ca",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['美中', '中兩', '兩強', '強領', '領導', '導人', '人視', '視訊', '訊高', '高峰', '峰會', '會甫', '甫告', '告落', '落幕', '幕,', ',各', '各方', '方就', '就傳', '傳出', '出美', '美國', '國有', '有意', '意抵', '抵制', '制北', '北京', '京冬', '冬季', '季奧', '奧運', '運訊', '訊息', '息,', ',但', '但政', '政治', '治是', '是要', '要講', '講究', '究時', '時機', '機與', '與節', '節奏', '奏,', ',就', '就目', '目前', '前端', '端出', '出抵', '抵制', '制北', '北京', '京冬', '冬奧', '奧所', '所能', '能產', '產生', '生各', '各項', '項效', '效應', '應來', '來說', '說,', ',其', '其實', '實相', '相關', '關有', '有利', '利時', '時間', '間節', '節點', '點早', '早就', '就過', '過去', '去,', ',而', '而且', '且展', '展望', '望可', '可能', '能效', '效應', '應亦', '亦相', '相當', '當有', '有限', '限,', ',華', '華盛', '盛頓', '頓決', '決策', '策謀', '謀士', '士若', '若是', '是不', '不能', '能深', '深思', '思熟', '熟慮', '慮,', ',到', '到最', '最後', '後很', '很有', '有可', '可能', '能會', '會弄', '弄巧', '巧成', '成拙', '拙。', '。首', '首先', '先必', '必須', '須指', '指出', '出,', ',在', '在國', '國際', '際社', '社會', '會若', '若要', '要運', '運用', '用抵', '抵制', '制運', '運動', '動賽', '賽事', '事,', ',作', '作為', '為政', '政治', '治表', '表態', '態與', '與殺', '殺傷', '傷對', '對方', '方國', '國際', '際形', '形象', '象手', '手段', '段,', ',甚', '甚至', '至是', '是存', '存心', '心要', '要在', '在實', '實質', '質商', '商業', '業利', '利益', '益上', '上攪', '攪局', '局,', ',必', '必須', '須師', '師出', '出有', '有名', '名才', '才能', '能夠', '夠煽', '煽動', '動人', '人心', '心獲', '獲得', '得響', '響應', '應。', '。因', '因此', '此如', '如何', '何運', '運用', '用特', '特定', '定時', '時間', '間節', '節點', '點,', ',在', '在國', '國際', '際社', '社會', '會對', '對運', '運動', '動賽', '賽事', '事東', '東道', '道主', '主,', ',在', '在國', '國際', '際事', '事務', '務上', '上負', '負面', '面行', '行為', '為記', '記憶', '憶猶', '猶新', '新時', '時斷', '斷然', '然出', '出招', '招,', ',才', '才能', '能夠', '夠鼓', '鼓動', '動風', '風潮', '潮招', '招朋', '朋引', '引伴', '伴形', '形成', '成氣', '氣勢', '勢。', '。儘', '儘管', '管國', '國際', '際社', '社會', '會每', '每個', '個成', '成員', '員都', '都會', '會唱', '唱政', '政治', '治莫', '莫要', '要干', '干預', '預體', '體育', '育高', '高調', '調,', ',尤', '尤其', '其是', '是強', '強權', '權更', '更是', '是滿', '滿嘴', '嘴仁', '仁義', '義道', '道德', '德,', ',幹', '幹起', '起事', '事來', '來卻', '卻是', '是凶', '凶狠', '狠毒', '毒辣', '辣毫', '毫無', '無顧', '顧忌', '忌。', '。不', '不過', '過若', '若真', '真要', '要抵', '抵制', '制運', '運動', '動賽', '賽事', '事時', '時,', ',基', '基本', '本上', '上具', '具有', '有三', '三個', '個面', '面向', '向可', '可以', '以當', '當成', '成打', '打擊', '擊目', '目標', '標;', ';其', '其中', '中包', '包括', '括選', '選手', '手不', '不參', '參加', '加賽', '賽事', '事,', ',企', '企業', '業不', '不捧', '捧場', '場媒', '媒體', '體不', '不轉', '轉播', '播以', '以及', '及政', '政要', '要不', '不出', '出席', '席,', ',以', '以便', '便杯', '杯葛', '葛東', '東道', '道主', '主運', '運動', '動賽', '賽事', '事外', '外交', '交。', '。就', '就目', '目前', '前來', '來說', '說,', ',各', '各方', '方要', '要在', '在明', '明年', '年二', '二月', '月參', '參加', '加北', '北京', '京冬', '冬奧', '奧,', ',或', '或是', '是三', '三月', '月北', '北京', '京冬', '冬季', '季帕', '帕奧', '奧選', '選手', '手,', ',早', '早就', '就蓄', '蓄勢', '勢待', '待發', '發等', '等待', '待出', '出場', '場競', '競技', '技,', ',此', '此時', '時若', '若是', '是突', '突然', '然叫', '叫停', '停,', ',不', '不但', '但對', '對選', '選手', '手準', '準備', '備賽', '賽事', '事來', '來說', '說,', ',此', '此種', '種干', '干擾', '擾作', '作梗', '梗會', '會讓', '讓其', '其失', '失望', '望憤', '憤怒', '怒;', ';許', '許多', '多選', '選手', '手還', '還與', '與商', '商業', '業機', '機構', '構簽', '簽有', '有代', '代言', '言商', '商品', '品契', '契約', '約,', ',相', '相關', '關廠', '廠商', '商贊', '贊助', '助或', '或是', '是實', '實質', '質收', '收益', '益自', '自然', '然就', '就會', '會受', '受到', '到衝', '衝擊', '擊,', ',許', '許多', '多選', '選手', '手還', '還期', '期待', '待透', '透過', '過競', '競技', '技奪', '奪牌', '牌,', ',奠', '奠定', '定轉', '轉戰', '戰其', '其他', '他職', '職業', '業表', '表演', '演舞', '舞臺', '臺,', ',透', '透過', '過賽', '賽事', '事成', '成績', '績成', '成為', '為開', '開創', '創後', '後續', '續事', '事業', '業跳', '跳板', '板。', '。假', '假若', '若政', '政府', '府到', '到此', '此時', '時輕', '輕舉', '舉妄', '妄動', '動,', ',臨', '臨時', '時神', '神來', '來一', '一筆', '筆,', ',將', '將攸', '攸關', '關重', '重大', '大利', '利益', '益者', '者無', '無端', '端開', '開罪', '罪,', ',絕', '絕對', '對就', '就是', '是在', '在生', '生產', '產政', '政治', '治票', '票房', '房毒', '毒藥', '藥。', '。其', '其次', '次就', '就支', '支持', '持賽', '賽事', '事藉', '藉由', '由贊', '贊助', '助活', '活動', '動捐', '捐輸', '輸經', '經費', '費,', ',以', '以便', '便獲', '獲得', '得在', '在賽', '賽事', '事現', '現場', '場進', '進行', '行廣', '廣告', '告宣', '宣傳', '傳之', '之企', '企業', '業來', '來說', '說,', ',此', '此時', '時政', '政治', '治攪', '攪局', '局必', '必然', '然會', '會減', '減損', '損廣', '廣告', '告傳', '傳播', '播效', '效應', '應,', ',對', '對於', '於掏', '掏出', '出大', '大把', '把銀', '銀兩', '兩,', ',寄', '寄望', '望配', '配合', '合賽', '賽事', '事進', '進行', '行廣', '廣告', '告宣', '宣傳', '傳者', '者來', '來說', '說,', ',必', '必然', '然會', '會咬', '咬牙', '牙切', '切齒', '齒,', ',對', '對於', '於突', '突然', '然攪', '攪局', '局倡', '倡議', '議抵', '抵制', '制者', '者來', '來說', '說,', ',事', '事後', '後必', '必然', '然會', '會抱', '抱持', '持負', '負面', '面態', '態度', '度,', ',政', '政治', '治獻', '獻金', '金或', '或是', '是選', '選舉', '舉贊', '贊助', '助,', ',這', '這些', '些企', '企業', '業金', '金主', '主都', '都會', '會記', '記在', '在心', '心裡', '裡,', ',政', '政治', '治人', '人物', '物看', '看看', '看賽', '賽事', '事贊', '贊助', '助,', ',要', '要是', '是還', '還不', '不識', '識相', '相,', ',體', '體會', '會不', '不出', '出此', '此事', '事敏', '敏感', '感程', '程度', '度,', ',恐', '恐怕', '怕會', '會被', '被人', '人譏', '譏笑', '笑為', '為政', '政治', '治外', '外行', '行。', '。再', '再者', '者就', '就要', '要想', '想到', '到專', '專門', '門轉', '轉播', '播運', '運動', '動賽', '賽事', '事,', ',以', '以便', '便從', '從中', '中獲', '獲取', '取商', '商業', '業利', '利益', '益之', '之媒', '媒體', '體業', '業者', '者,', ',再', '再加', '加上', '上依', '依附', '附在', '在此', '此產', '產業', '業鏈', '鏈相', '相關', '關評', '評論', '論分', '分析', '析專', '專家', '家,', ',還', '還有', '有配', '配合', '合賽', '賽事', '事轉', '轉播', '播進', '進場', '場之', '之廣', '廣告', '告商', '商與', '與企', '企業', '業組', '組織', '織,', ',此', '此種', '種關', '關係', '係綿', '綿密', '密結', '結構', '構複', '複雜', '雜之', '之利', '利益', '益網', '網路', '路,', ',政', '政治', '治人', '人物', '物都', '都要', '要忌', '忌憚', '憚三', '三分', '分,', ',所', '所以', '以如', '如今', '今箭', '箭在', '在弦', '弦上', '上,', ',若', '若要', '要抵', '抵制', '制杯', '杯葛', '葛又', '又不', '不事', '事先', '先早', '早點', '點明', '明講', '講,', ',等', '等到', '到萬', '萬事', '事就', '就緒', '緒再', '再出', '出面', '面攪', '攪局', '局,', ',豈', '豈不', '不就', '就是', '是自', '自討', '討沒', '沒趣', '趣?', '?至', '至於', '於各', '各國', '國政', '政要', '要配', '配合', '合出', '出席', '席運', '運動', '動賽', '賽事', '事開', '開幕', '幕與', '與閉', '閉幕', '幕典', '典禮', '禮,', ',順', '順道', '道進', '進行', '行運', '運動', '動外', '外交', '交高', '高峰', '峰會', '會談', '談,', ',早', '早就', '就因', '因為', '為疫', '疫情', '情影', '影響', '響,', ',各', '各國', '國高', '高層', '層都', '都不', '不願', '願承', '承擔', '擔此', '此種', '種風', '風險', '險,', ',因', '因此', '此,', ',此', '此時', '時聲', '聲稱', '稱所', '所謂', '謂「', '「政', '政治', '治杯', '杯葛', '葛」', '」,', ',將', '將焦', '焦點', '點集', '集中', '中在', '在不', '不出', '出席', '席盛', '盛會', '會,', ',其', '其實', '實根', '根本', '本就', '就無', '無法', '法產', '產生', '生具', '具體', '體影', '影響', '響。', '。多', '多個', '個運', '運動', '動賽', '賽事', '事政', '政要', '要出', '出席', '席致', '致賀', '賀,', ',早', '早就', '就是', '是透', '透過', '過網', '網際', '際網', '網路', '路遠', '遠距', '距傳', '傳送', '送聲', '聲光', '光影', '影像', '像,', ',因', '因此', '此就', '就算', '算端', '端出', '出個', '個理', '理由', '由,', ',聲', '聲稱', '稱杯', '杯葛', '葛出', '出席', '席來', '來表', '表達', '達政', '政治', '治姿', '姿態', '態,', ',恐', '恐怕', '怕媒', '媒體', '體效', '效應', '應更', '更是', '是無', '無足', '足輕', '輕重', '重。', '。美', '美國', '國若', '若是', '是真', '真有', '有心', '心抵', '抵制', '制杯', '杯葛', '葛北', '北京', '京冬', '冬奧', '奧,', ',就', '就必', '必須', '須及', '及早', '早表', '表態', '態,', ',如', '如今', '今在', '在視', '視訊', '訊峰', '峰會', '會剛', '剛過', '過,', ',突', '突然', '然開', '開始', '始釋', '釋放', '放消', '消息', '息,', ',但', '但只', '只是', '是聲', '聲稱', '稱在', '在考', '考慮', '慮抵', '抵制', '制,', ',卻', '卻未', '未能', '能提', '提出', '出肯', '肯定', '定訊', '訊息', '息;', ';講', '講實', '實在', '在話', '話,', ',這', '這就', '就是', '是在', '在釋', '釋放', '放政', '政治', '治氣', '氣球', '球,', ',看', '看看', '看是', '是否', '否有', '有國', '國家', '家願', '願意', '意跟', '跟進', '進扈', '扈從', '從,', ',否', '否則', '則貿', '貿然', '然宣', '宣布', '布抵', '抵制', '制杯', '杯葛', '葛,', ',但', '但卻', '卻沒', '沒有', '有其', '其他', '他國', '國家', '家跟', '跟進', '進時', '時,', ',搞', '搞到', '到千', '千山', '山我', '我獨', '獨行', '行無', '無人', '人相', '相送', '送陪', '陪伴', '伴,', ',這', '這種', '種淒', '淒涼', '涼景', '景況', '況豈', '豈不', '不是', '是弄', '弄巧', '巧成', '成拙', '拙,', ',擺', '擺明', '明讓', '讓自', '自己', '己難', '難看', '看嗎', '嗎?', '?所', '所以', '以美', '美國', '國抵', '抵制', '制北', '北京', '京冬', '冬奧', '奧,', ',不', '不但', '但難', '難有', '有實', '實效', '效風', '風險', '險亦', '亦高', '高。', '。冬', '冬季', '季奧', '奧運', '運其', '其實', '實向', '向來', '來被', '被國', '國際', '際社', '社會', '會譏', '譏為', '為有', '有錢', '錢人', '人賽', '賽事', '事,', ',對', '對於', '於奧', '奧運', '運組', '組織', '織成', '成員', '員國', '國來', '來說', '說,', ',能', '能否', '否在', '在冬', '冬季', '季奧', '奧運', '運闖', '闖出', '出一', '一片', '片天', '天,', ',不', '不但', '但受', '受限', '限於', '於氣', '氣候', '候條', '條件', '件,', ',相', '相關', '關場', '場地', '地、', '、設', '設施', '施、', '、器', '器具', '具以', '以及', '及訓', '訓練', '練過', '過程', '程,', ',就', '就經', '經費', '費預', '預算', '算來', '來說', '說,', ',門', '門檻', '檻相', '相對', '對較', '較高', '高。', '。所', '所以', '以能', '能夠', '夠主', '主辦', '辦冬', '冬季', '季奧', '奧運', '運,', ',不', '不但', '但本', '本身', '身在', '在相', '相關', '關賽', '賽事', '事項', '項目', '目上', '上要', '要有', '有實', '實力', '力奪', '奪牌', '牌,', ',能', '能夠', '夠滿', '滿足', '足賽', '賽事', '事場', '場地', '地與', '與設', '設施', '施規', '規格', '格,', ',其', '其實', '實亦', '亦是', '是國', '國家', '家富', '富強', '強指', '指標', '標,', ',暗', '暗示', '示東', '東道', '道主', '主總', '總算', '算擠', '擠進', '進國', '國際', '際社', '社會', '會富', '富裕', '裕階', '階層', '層行', '行列', '列。', '。所', '所以', '以西', '西方', '方社', '社會', '會某', '某些', '些人', '人士', '士刻', '刻意', '意要', '要抵', '抵制', '制杯', '杯葛', '葛北', '北京', '京冬', '冬奧', '奧賽', '賽事', '事,', ',在', '在相', '相當', '當程', '程度', '度上', '上是', '是具', '具有', '有嫌', '嫌貧', '貧愛', '愛富', '富地', '地位', '位歧', '歧視', '視因', '因素', '素,', ',但', '但此', '此種', '種醜', '醜陋', '陋心', '心態', '態確', '確實', '實是', '是不', '不能', '能放', '放在', '在檯', '檯面', '面,', ',所', '所以', '以當', '當眼', '眼睜', '睜睜', '睜看', '看到', '到中', '中國', '國大', '大陸', '陸獲', '獲得', '得主', '主辦', '辦冬', '冬季', '季奧', '奧運', '運機', '機會', '會,', ',其', '其實', '實就', '就是', '是對', '對其', '其社', '社會', '會富', '富裕', '裕程', '程度', '度加', '加冕', '冕認', '認證', '證,', ',此', '此種', '種難', '難以', '以啟', '啟口', '口內', '內心', '心酸', '酸葡', '葡萄', '萄不', '不痛', '痛快', '快感', '感覺', '覺,', ',或', '或許', '許才', '才是', '是西', '西方', '方社', '社會', '會某', '某些', '些人', '人士', '士倡', '倡議', '議抵', '抵制', '制北', '北京', '京冬', '冬奧', '奧,', ',但', '但卻', '卻又', '又羞', '羞於', '於啟', '啟口', '口之', '之真', '真正', '正原', '原因', '因吧', '吧!']\n"
]
}
],
"source": [
"print(nElem(article, 2))"
]
},
{
"cell_type": "code",
"execution_count": 62,
"id": "6225f901",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['美中兩', '中兩強', '兩強領', '強領導', '領導人', '導人視', '人視訊', '視訊高', '訊高峰', '高峰會', '峰會甫', '會甫告', '甫告落', '告落幕', '落幕,', '幕,各', ',各方', '各方就', '方就傳', '就傳出', '傳出美', '出美國', '美國有', '國有意', '有意抵', '意抵制', '抵制北', '制北京', '北京冬', '京冬季', '冬季奧', '季奧運', '奧運訊', '運訊息', '訊息,', '息,但', ',但政', '但政治', '政治是', '治是要', '是要講', '要講究', '講究時', '究時機', '時機與', '機與節', '與節奏', '節奏,', '奏,就', ',就目', '就目前', '目前端', '前端出', '端出抵', '出抵制', '抵制北', '制北京', '北京冬', '京冬奧', '冬奧所', '奧所能', '所能產', '能產生', '產生各', '生各項', '各項效', '項效應', '效應來', '應來說', '來說,', '說,其', ',其實', '其實相', '實相關', '相關有', '關有利', '有利時', '利時間', '時間節', '間節點', '節點早', '點早就', '早就過', '就過去', '過去,', '去,而', ',而且', '而且展', '且展望', '展望可', '望可能', '可能效', '能效應', '效應亦', '應亦相', '亦相當', '相當有', '當有限', '有限,', '限,華', ',華盛', '華盛頓', '盛頓決', '頓決策', '決策謀', '策謀士', '謀士若', '士若是', '若是不', '是不能', '不能深', '能深思', '深思熟', '思熟慮', '熟慮,', '慮,到', ',到最', '到最後', '最後很', '後很有', '很有可', '有可能', '可能會', '能會弄', '會弄巧', '弄巧成', '巧成拙', '成拙。', '拙。首', '。首先', '首先必', '先必須', '必須指', '須指出', '指出,', '出,在', ',在國', '在國際', '國際社', '際社會', '社會若', '會若要', '若要運', '要運用', '運用抵', '用抵制', '抵制運', '制運動', '運動賽', '動賽事', '賽事,', '事,作', ',作為', '作為政', '為政治', '政治表', '治表態', '表態與', '態與殺', '與殺傷', '殺傷對', '傷對方', '對方國', '方國際', '國際形', '際形象', '形象手', '象手段', '手段,', '段,甚', ',甚至', '甚至是', '至是存', '是存心', '存心要', '心要在', '要在實', '在實質', '實質商', '質商業', '商業利', '業利益', '利益上', '益上攪', '上攪局', '攪局,', '局,必', ',必須', '必須師', '須師出', '師出有', '出有名', '有名才', '名才能', '才能夠', '能夠煽', '夠煽動', '煽動人', '動人心', '人心獲', '心獲得', '獲得響', '得響應', '響應。', '應。因', '。因此', '因此如', '此如何', '如何運', '何運用', '運用特', '用特定', '特定時', '定時間', '時間節', '間節點', '節點,', '點,在', ',在國', '在國際', '國際社', '際社會', '社會對', '會對運', '對運動', '運動賽', '動賽事', '賽事東', '事東道', '東道主', '道主,', '主,在', ',在國', '在國際', '國際事', '際事務', '事務上', '務上負', '上負面', '負面行', '面行為', '行為記', '為記憶', '記憶猶', '憶猶新', '猶新時', '新時斷', '時斷然', '斷然出', '然出招', '出招,', '招,才', ',才能', '才能夠', '能夠鼓', '夠鼓動', '鼓動風', '動風潮', '風潮招', '潮招朋', '招朋引', '朋引伴', '引伴形', '伴形成', '形成氣', '成氣勢', '氣勢。', '勢。儘', '。儘管', '儘管國', '管國際', '國際社', '際社會', '社會每', '會每個', '每個成', '個成員', '成員都', '員都會', '都會唱', '會唱政', '唱政治', '政治莫', '治莫要', '莫要干', '要干預', '干預體', '預體育', '體育高', '育高調', '高調,', '調,尤', ',尤其', '尤其是', '其是強', '是強權', '強權更', '權更是', '更是滿', '是滿嘴', '滿嘴仁', '嘴仁義', '仁義道', '義道德', '道德,', '德,幹', ',幹起', '幹起事', '起事來', '事來卻', '來卻是', '卻是凶', '是凶狠', '凶狠毒', '狠毒辣', '毒辣毫', '辣毫無', '毫無顧', '無顧忌', '顧忌。', '忌。不', '。不過', '不過若', '過若真', '若真要', '真要抵', '要抵制', '抵制運', '制運動', '運動賽', '動賽事', '賽事時', '事時,', '時,基', ',基本', '基本上', '本上具', '上具有', '具有三', '有三個', '三個面', '個面向', '面向可', '向可以', '可以當', '以當成', '當成打', '成打擊', '打擊目', '擊目標', '目標;', '標;其', ';其中', '其中包', '中包括', '包括選', '括選手', '選手不', '手不參', '不參加', '參加賽', '加賽事', '賽事,', '事,企', ',企業', '企業不', '業不捧', '不捧場', '捧場媒', '場媒體', '媒體不', '體不轉', '不轉播', '轉播以', '播以及', '以及政', '及政要', '政要不', '要不出', '不出席', '出席,', '席,以', ',以便', '以便杯', '便杯葛', '杯葛東', '葛東道', '東道主', '道主運', '主運動', '運動賽', '動賽事', '賽事外', '事外交', '外交。', '交。就', '。就目', '就目前', '目前來', '前來說', '來說,', '說,各', ',各方', '各方要', '方要在', '要在明', '在明年', '明年二', '年二月', '二月參', '月參加', '參加北', '加北京', '北京冬', '京冬奧', '冬奧,', '奧,或', ',或是', '或是三', '是三月', '三月北', '月北京', '北京冬', '京冬季', '冬季帕', '季帕奧', '帕奧選', '奧選手', '選手,', '手,早', ',早就', '早就蓄', '就蓄勢', '蓄勢待', '勢待發', '待發等', '發等待', '等待出', '待出場', '出場競', '場競技', '競技,', '技,此', ',此時', '此時若', '時若是', '若是突', '是突然', '突然叫', '然叫停', '叫停,', '停,不', ',不但', '不但對', '但對選', '對選手', '選手準', '手準備', '準備賽', '備賽事', '賽事來', '事來說', '來說,', '說,此', ',此種', '此種干', '種干擾', '干擾作', '擾作梗', '作梗會', '梗會讓', '會讓其', '讓其失', '其失望', '失望憤', '望憤怒', '憤怒;', '怒;許', ';許多', '許多選', '多選手', '選手還', '手還與', '還與商', '與商業', '商業機', '業機構', '機構簽', '構簽有', '簽有代', '有代言', '代言商', '言商品', '商品契', '品契約', '契約,', '約,相', ',相關', '相關廠', '關廠商', '廠商贊', '商贊助', '贊助或', '助或是', '或是實', '是實質', '實質收', '質收益', '收益自', '益自然', '自然就', '然就會', '就會受', '會受到', '受到衝', '到衝擊', '衝擊,', '擊,許', ',許多', '許多選', '多選手', '選手還', '手還期', '還期待', '期待透', '待透過', '透過競', '過競技', '競技奪', '技奪牌', '奪牌,', '牌,奠', ',奠定', '奠定轉', '定轉戰', '轉戰其', '戰其他', '其他職', '他職業', '職業表', '業表演', '表演舞', '演舞臺', '舞臺,', '臺,透', ',透過', '透過賽', '過賽事', '賽事成', '事成績', '成績成', '績成為', '成為開', '為開創', '開創後', '創後續', '後續事', '續事業', '事業跳', '業跳板', '跳板。', '板。假', '。假若', '假若政', '若政府', '政府到', '府到此', '到此時', '此時輕', '時輕舉', '輕舉妄', '舉妄動', '妄動,', '動,臨', ',臨時', '臨時神', '時神來', '神來一', '來一筆', '一筆,', '筆,將', ',將攸', '將攸關', '攸關重', '關重大', '重大利', '大利益', '利益者', '益者無', '者無端', '無端開', '端開罪', '開罪,', '罪,絕', ',絕對', '絕對就', '對就是', '就是在', '是在生', '在生產', '生產政', '產政治', '政治票', '治票房', '票房毒', '房毒藥', '毒藥。', '藥。其', '。其次', '其次就', '次就支', '就支持', '支持賽', '持賽事', '賽事藉', '事藉由', '藉由贊', '由贊助', '贊助活', '助活動', '活動捐', '動捐輸', '捐輸經', '輸經費', '經費,', '費,以', ',以便', '以便獲', '便獲得', '獲得在', '得在賽', '在賽事', '賽事現', '事現場', '現場進', '場進行', '進行廣', '行廣告', '廣告宣', '告宣傳', '宣傳之', '傳之企', '之企業', '企業來', '業來說', '來說,', '說,此', ',此時', '此時政', '時政治', '政治攪', '治攪局', '攪局必', '局必然', '必然會', '然會減', '會減損', '減損廣', '損廣告', '廣告傳', '告傳播', '傳播效', '播效應', '效應,', '應,對', ',對於', '對於掏', '於掏出', '掏出大', '出大把', '大把銀', '把銀兩', '銀兩,', '兩,寄', ',寄望', '寄望配', '望配合', '配合賽', '合賽事', '賽事進', '事進行', '進行廣', '行廣告', '廣告宣', '告宣傳', '宣傳者', '傳者來', '者來說', '來說,', '說,必', ',必然', '必然會', '然會咬', '會咬牙', '咬牙切', '牙切齒', '切齒,', '齒,對', ',對於', '對於突', '於突然', '突然攪', '然攪局', '攪局倡', '局倡議', '倡議抵', '議抵制', '抵制者', '制者來', '者來說', '來說,', '說,事', ',事後', '事後必', '後必然', '必然會', '然會抱', '會抱持', '抱持負', '持負面', '負面態', '面態度', '態度,', '度,政', ',政治', '政治獻', '治獻金', '獻金或', '金或是', '或是選', '是選舉', '選舉贊', '舉贊助', '贊助,', '助,這', ',這些', '這些企', '些企業', '企業金', '業金主', '金主都', '主都會', '都會記', '會記在', '記在心', '在心裡', '心裡,', '裡,政', ',政治', '政治人', '治人物', '人物看', '物看看', '看看賽', '看賽事', '賽事贊', '事贊助', '贊助,', '助,要', ',要是', '要是還', '是還不', '還不識', '不識相', '識相,', '相,體', ',體會', '體會不', '會不出', '不出此', '出此事', '此事敏', '事敏感', '敏感程', '感程度', '程度,', '度,恐', ',恐怕', '恐怕會', '怕會被', '會被人', '被人譏', '人譏笑', '譏笑為', '笑為政', '為政治', '政治外', '治外行', '外行。', '行。再', '。再者', '再者就', '者就要', '就要想', '要想到', '想到專', '到專門', '專門轉', '門轉播', '轉播運', '播運動', '運動賽', '動賽事', '賽事,', '事,以', ',以便', '以便從', '便從中', '從中獲', '中獲取', '獲取商', '取商業', '商業利', '業利益', '利益之', '益之媒', '之媒體', '媒體業', '體業者', '業者,', '者,再', ',再加', '再加上', '加上依', '上依附', '依附在', '附在此', '在此產', '此產業', '產業鏈', '業鏈相', '鏈相關', '相關評', '關評論', '評論分', '論分析', '分析專', '析專家', '專家,', '家,還', ',還有', '還有配', '有配合', '配合賽', '合賽事', '賽事轉', '事轉播', '轉播進', '播進場', '進場之', '場之廣', '之廣告', '廣告商', '告商與', '商與企', '與企業', '企業組', '業組織', '組織,', '織,此', ',此種', '此種關', '種關係', '關係綿', '係綿密', '綿密結', '密結構', '結構複', '構複雜', '複雜之', '雜之利', '之利益', '利益網', '益網路', '網路,', '路,政', ',政治', '政治人', '治人物', '人物都', '物都要', '都要忌', '要忌憚', '忌憚三', '憚三分', '三分,', '分,所', ',所以', '所以如', '以如今', '如今箭', '今箭在', '箭在弦', '在弦上', '弦上,', '上,若', ',若要', '若要抵', '要抵制', '抵制杯', '制杯葛', '杯葛又', '葛又不', '又不事', '不事先', '事先早', '先早點', '早點明', '點明講', '明講,', '講,等', ',等到', '等到萬', '到萬事', '萬事就', '事就緒', '就緒再', '緒再出', '再出面', '出面攪', '面攪局', '攪局,', '局,豈', ',豈不', '豈不就', '不就是', '就是自', '是自討', '自討沒', '討沒趣', '沒趣?', '趣?至', '?至於', '至於各', '於各國', '各國政', '國政要', '政要配', '要配合', '配合出', '合出席', '出席運', '席運動', '運動賽', '動賽事', '賽事開', '事開幕', '開幕與', '幕與閉', '與閉幕', '閉幕典', '幕典禮', '典禮,', '禮,順', ',順道', '順道進', '道進行', '進行運', '行運動', '運動外', '動外交', '外交高', '交高峰', '高峰會', '峰會談', '會談,', '談,早', ',早就', '早就因', '就因為', '因為疫', '為疫情', '疫情影', '情影響', '影響,', '響,各', ',各國', '各國高', '國高層', '高層都', '層都不', '都不願', '不願承', '願承擔', '承擔此', '擔此種', '此種風', '種風險', '風險,', '險,因', ',因此', '因此,', '此,此', ',此時', '此時聲', '時聲稱', '聲稱所', '稱所謂', '所謂「', '謂「政', '「政治', '政治杯', '治杯葛', '杯葛」', '葛」,', '」,將', ',將焦', '將焦點', '焦點集', '點集中', '集中在', '中在不', '在不出', '不出席', '出席盛', '席盛會', '盛會,', '會,其', ',其實', '其實根', '實根本', '根本就', '本就無', '就無法', '無法產', '法產生', '產生具', '生具體', '具體影', '體影響', '影響。', '響。多', '。多個', '多個運', '個運動', '運動賽', '動賽事', '賽事政', '事政要', '政要出', '要出席', '出席致', '席致賀', '致賀,', '賀,早', ',早就', '早就是', '就是透', '是透過', '透過網', '過網際', '網際網', '際網路', '網路遠', '路遠距', '遠距傳', '距傳送', '傳送聲', '送聲光', '聲光影', '光影像', '影像,', '像,因', ',因此', '因此就', '此就算', '就算端', '算端出', '端出個', '出個理', '個理由', '理由,', '由,聲', ',聲稱', '聲稱杯', '稱杯葛', '杯葛出', '葛出席', '出席來', '席來表', '來表達', '表達政', '達政治', '政治姿', '治姿態', '姿態,', '態,恐', ',恐怕', '恐怕媒', '怕媒體', '媒體效', '體效應', '效應更', '應更是', '更是無', '是無足', '無足輕', '足輕重', '輕重。', '重。美', '。美國', '美國若', '國若是', '若是真', '是真有', '真有心', '有心抵', '心抵制', '抵制杯', '制杯葛', '杯葛北', '葛北京', '北京冬', '京冬奧', '冬奧,', '奧,就', ',就必', '就必須', '必須及', '須及早', '及早表', '早表態', '表態,', '態,如', ',如今', '如今在', '今在視', '在視訊', '視訊峰', '訊峰會', '峰會剛', '會剛過', '剛過,', '過,突', ',突然', '突然開', '然開始', '開始釋', '始釋放', '釋放消', '放消息', '消息,', '息,但', ',但只', '但只是', '只是聲', '是聲稱', '聲稱在', '稱在考', '在考慮', '考慮抵', '慮抵制', '抵制,', '制,卻', ',卻未', '卻未能', '未能提', '能提出', '提出肯', '出肯定', '肯定訊', '定訊息', '訊息;', '息;講', ';講實', '講實在', '實在話', '在話,', '話,這', ',這就', '這就是', '就是在', '是在釋', '在釋放', '釋放政', '放政治', '政治氣', '治氣球', '氣球,', '球,看', ',看看', '看看是', '看是否', '是否有', '否有國', '有國家', '國家願', '家願意', '願意跟', '意跟進', '跟進扈', '進扈從', '扈從,', '從,否', ',否則', '否則貿', '則貿然', '貿然宣', '然宣布', '宣布抵', '布抵制', '抵制杯', '制杯葛', '杯葛,', '葛,但', ',但卻', '但卻沒', '卻沒有', '沒有其', '有其他', '其他國', '他國家', '國家跟', '家跟進', '跟進時', '進時,', '時,搞', ',搞到', '搞到千', '到千山', '千山我', '山我獨', '我獨行', '獨行無', '行無人', '無人相', '人相送', '相送陪', '送陪伴', '陪伴,', '伴,這', ',這種', '這種淒', '種淒涼', '淒涼景', '涼景況', '景況豈', '況豈不', '豈不是', '不是弄', '是弄巧', '弄巧成', '巧成拙', '成拙,', '拙,擺', ',擺明', '擺明讓', '明讓自', '讓自己', '自己難', '己難看', '難看嗎', '看嗎?', '嗎?所', '?所以', '所以美', '以美國', '美國抵', '國抵制', '抵制北', '制北京', '北京冬', '京冬奧', '冬奧,', '奧,不', ',不但', '不但難', '但難有', '難有實', '有實效', '實效風', '效風險', '風險亦', '險亦高', '亦高。', '高。冬', '。冬季', '冬季奧', '季奧運', '奧運其', '運其實', '其實向', '實向來', '向來被', '來被國', '被國際', '國際社', '際社會', '社會譏', '會譏為', '譏為有', '為有錢', '有錢人', '錢人賽', '人賽事', '賽事,', '事,對', ',對於', '對於奧', '於奧運', '奧運組', '運組織', '組織成', '織成員', '成員國', '員國來', '國來說', '來說,', '說,能', ',能否', '能否在', '否在冬', '在冬季', '冬季奧', '季奧運', '奧運闖', '運闖出', '闖出一', '出一片', '一片天', '片天,', '天,不', ',不但', '不但受', '但受限', '受限於', '限於氣', '於氣候', '氣候條', '候條件', '條件,', '件,相', ',相關', '相關場', '關場地', '場地、', '地、設', '、設施', '設施、', '施、器', '、器具', '器具以', '具以及', '以及訓', '及訓練', '訓練過', '練過程', '過程,', '程,就', ',就經', '就經費', '經費預', '費預算', '預算來', '算來說', '來說,', '說,門', ',門檻', '門檻相', '檻相對', '相對較', '對較高', '較高。', '高。所', '。所以', '所以能', '以能夠', '能夠主', '夠主辦', '主辦冬', '辦冬季', '冬季奧', '季奧運', '奧運,', '運,不', ',不但', '不但本', '但本身', '本身在', '身在相', '在相關', '相關賽', '關賽事', '賽事項', '事項目', '項目上', '目上要', '上要有', '要有實', '有實力', '實力奪', '力奪牌', '奪牌,', '牌,能', ',能夠', '能夠滿', '夠滿足', '滿足賽', '足賽事', '賽事場', '事場地', '場地與', '地與設', '與設施', '設施規', '施規格', '規格,', '格,其', ',其實', '其實亦', '實亦是', '亦是國', '是國家', '國家富', '家富強', '富強指', '強指標', '指標,', '標,暗', ',暗示', '暗示東', '示東道', '東道主', '道主總', '主總算', '總算擠', '算擠進', '擠進國', '進國際', '國際社', '際社會', '社會富', '會富裕', '富裕階', '裕階層', '階層行', '層行列', '行列。', '列。所', '。所以', '所以西', '以西方', '西方社', '方社會', '社會某', '會某些', '某些人', '些人士', '人士刻', '士刻意', '刻意要', '意要抵', '要抵制', '抵制杯', '制杯葛', '杯葛北', '葛北京', '北京冬', '京冬奧', '冬奧賽', '奧賽事', '賽事,', '事,在', ',在相', '在相當', '相當程', '當程度', '程度上', '度上是', '上是具', '是具有', '具有嫌', '有嫌貧', '嫌貧愛', '貧愛富', '愛富地', '富地位', '地位歧', '位歧視', '歧視因', '視因素', '因素,', '素,但', ',但此', '但此種', '此種醜', '種醜陋', '醜陋心', '陋心態', '心態確', '態確實', '確實是', '實是不', '是不能', '不能放', '能放在', '放在檯', '在檯面', '檯面,', '面,所', ',所以', '所以當', '以當眼', '當眼睜', '眼睜睜', '睜睜看', '睜看到', '看到中', '到中國', '中國大', '國大陸', '大陸獲', '陸獲得', '獲得主', '得主辦', '主辦冬', '辦冬季', '冬季奧', '季奧運', '奧運機', '運機會', '機會,', '會,其', ',其實', '其實就', '實就是', '就是對', '是對其', '對其社', '其社會', '社會富', '會富裕', '富裕程', '裕程度', '程度加', '度加冕', '加冕認', '冕認證', '認證,', '證,此', ',此種', '此種難', '種難以', '難以啟', '以啟口', '啟口內', '口內心', '內心酸', '心酸葡', '酸葡萄', '葡萄不', '萄不痛', '不痛快', '痛快感', '快感覺', '感覺,', '覺,或', ',或許', '或許才', '許才是', '才是西', '是西方', '西方社', '方社會', '社會某', '會某些', '某些人', '些人士', '人士倡', '士倡議', '倡議抵', '議抵制', '抵制北', '制北京', '北京冬', '京冬奧', '冬奧,', '奧,但', ',但卻', '但卻又', '卻又羞', '又羞於', '羞於啟', '於啟口', '啟口之', '口之真', '之真正', '真正原', '正原因', '原因吧', '因吧!']\n"
]
}
],
"source": [
"print(nElem(article, 3))"
]
},
{
"cell_type": "code",
"execution_count": 63,
"id": "262e38a8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['美中兩強', '中兩強領', '兩強領導', '強領導人', '領導人視', '導人視訊', '人視訊高', '視訊高峰', '訊高峰會', '高峰會甫', '峰會甫告', '會甫告落', '甫告落幕', '告落幕,', '落幕,各', '幕,各方', ',各方就', '各方就傳', '方就傳出', '就傳出美', '傳出美國', '出美國有', '美國有意', '國有意抵', '有意抵制', '意抵制北', '抵制北京', '制北京冬', '北京冬季', '京冬季奧', '冬季奧運', '季奧運訊', '奧運訊息', '運訊息,', '訊息,但', '息,但政', ',但政治', '但政治是', '政治是要', '治是要講', '是要講究', '要講究時', '講究時機', '究時機與', '時機與節', '機與節奏', '與節奏,', '節奏,就', '奏,就目', ',就目前', '就目前端', '目前端出', '前端出抵', '端出抵制', '出抵制北', '抵制北京', '制北京冬', '北京冬奧', '京冬奧所', '冬奧所能', '奧所能產', '所能產生', '能產生各', '產生各項', '生各項效', '各項效應', '項效應來', '效應來說', '應來說,', '來說,其', '說,其實', ',其實相', '其實相關', '實相關有', '相關有利', '關有利時', '有利時間', '利時間節', '時間節點', '間節點早', '節點早就', '點早就過', '早就過去', '就過去,', '過去,而', '去,而且', ',而且展', '而且展望', '且展望可', '展望可能', '望可能效', '可能效應', '能效應亦', '效應亦相', '應亦相當', '亦相當有', '相當有限', '當有限,', '有限,華', '限,華盛', ',華盛頓', '華盛頓決', '盛頓決策', '頓決策謀', '決策謀士', '策謀士若', '謀士若是', '士若是不', '若是不能', '是不能深', '不能深思', '能深思熟', '深思熟慮', '思熟慮,', '熟慮,到', '慮,到最', ',到最後', '到最後很', '最後很有', '後很有可', '很有可能', '有可能會', '可能會弄', '能會弄巧', '會弄巧成', '弄巧成拙', '巧成拙。', '成拙。首', '拙。首先', '。首先必', '首先必須', '先必須指', '必須指出', '須指出,', '指出,在', '出,在國', ',在國際', '在國際社', '國際社會', '際社會若', '社會若要', '會若要運', '若要運用', '要運用抵', '運用抵制', '用抵制運', '抵制運動', '制運動賽', '運動賽事', '動賽事,', '賽事,作', '事,作為', ',作為政', '作為政治', '為政治表', '政治表態', '治表態與', '表態與殺', '態與殺傷', '與殺傷對', '殺傷對方', '傷對方國', '對方國際', '方國際形', '國際形象', '際形象手', '形象手段', '象手段,', '手段,甚', '段,甚至', ',甚至是', '甚至是存', '至是存心', '是存心要', '存心要在', '心要在實', '要在實質', '在實質商', '實質商業', '質商業利', '商業利益', '業利益上', '利益上攪', '益上攪局', '上攪局,', '攪局,必', '局,必須', ',必須師', '必須師出', '須師出有', '師出有名', '出有名才', '有名才能', '名才能夠', '才能夠煽', '能夠煽動', '夠煽動人', '煽動人心', '動人心獲', '人心獲得', '心獲得響', '獲得響應', '得響應。', '響應。因', '應。因此', '。因此如', '因此如何', '此如何運', '如何運用', '何運用特', '運用特定', '用特定時', '特定時間', '定時間節', '時間節點', '間節點,', '節點,在', '點,在國', ',在國際', '在國際社', '國際社會', '際社會對', '社會對運', '會對運動', '對運動賽', '運動賽事', '動賽事東', '賽事東道', '事東道主', '東道主,', '道主,在', '主,在國', ',在國際', '在國際事', '國際事務', '際事務上', '事務上負', '務上負面', '上負面行', '負面行為', '面行為記', '行為記憶', '為記憶猶', '記憶猶新', '憶猶新時', '猶新時斷', '新時斷然', '時斷然出', '斷然出招', '然出招,', '出招,才', '招,才能', ',才能夠', '才能夠鼓', '能夠鼓動', '夠鼓動風', '鼓動風潮', '動風潮招', '風潮招朋', '潮招朋引', '招朋引伴', '朋引伴形', '引伴形成', '伴形成氣', '形成氣勢', '成氣勢。', '氣勢。儘', '勢。儘管', '。儘管國', '儘管國際', '管國際社', '國際社會', '際社會每', '社會每個', '會每個成', '每個成員', '個成員都', '成員都會', '員都會唱', '都會唱政', '會唱政治', '唱政治莫', '政治莫要', '治莫要干', '莫要干預', '要干預體', '干預體育', '預體育高', '體育高調', '育高調,', '高調,尤', '調,尤其', ',尤其是', '尤其是強', '其是強權', '是強權更', '強權更是', '權更是滿', '更是滿嘴', '是滿嘴仁', '滿嘴仁義', '嘴仁義道', '仁義道德', '義道德,', '道德,幹', '德,幹起', ',幹起事', '幹起事來', '起事來卻', '事來卻是', '來卻是凶', '卻是凶狠', '是凶狠毒', '凶狠毒辣', '狠毒辣毫', '毒辣毫無', '辣毫無顧', '毫無顧忌', '無顧忌。', '顧忌。不', '忌。不過', '。不過若', '不過若真', '過若真要', '若真要抵', '真要抵制', '要抵制運', '抵制運動', '制運動賽', '運動賽事', '動賽事時', '賽事時,', '事時,基', '時,基本', ',基本上', '基本上具', '本上具有', '上具有三', '具有三個', '有三個面', '三個面向', '個面向可', '面向可以', '向可以當', '可以當成', '以當成打', '當成打擊', '成打擊目', '打擊目標', '擊目標;', '目標;其', '標;其中', ';其中包', '其中包括', '中包括選', '包括選手', '括選手不', '選手不參', '手不參加', '不參加賽', '參加賽事', '加賽事,', '賽事,企', '事,企業', ',企業不', '企業不捧', '業不捧場', '不捧場媒', '捧場媒體', '場媒體不', '媒體不轉', '體不轉播', '不轉播以', '轉播以及', '播以及政', '以及政要', '及政要不', '政要不出', '要不出席', '不出席,', '出席,以', '席,以便', ',以便杯', '以便杯葛', '便杯葛東', '杯葛東道', '葛東道主', '東道主運', '道主運動', '主運動賽', '運動賽事', '動賽事外', '賽事外交', '事外交。', '外交。就', '交。就目', '。就目前', '就目前來', '目前來說', '前來說,', '來說,各', '說,各方', ',各方要', '各方要在', '方要在明', '要在明年', '在明年二', '明年二月', '年二月參', '二月參加', '月參加北', '參加北京', '加北京冬', '北京冬奧', '京冬奧,', '冬奧,或', '奧,或是', ',或是三', '或是三月', '是三月北', '三月北京', '月北京冬', '北京冬季', '京冬季帕', '冬季帕奧', '季帕奧選', '帕奧選手', '奧選手,', '選手,早', '手,早就', ',早就蓄', '早就蓄勢', '就蓄勢待', '蓄勢待發', '勢待發等', '待發等待', '發等待出', '等待出場', '待出場競', '出場競技', '場競技,', '競技,此', '技,此時', ',此時若', '此時若是', '時若是突', '若是突然', '是突然叫', '突然叫停', '然叫停,', '叫停,不', '停,不但', ',不但對', '不但對選', '但對選手', '對選手準', '選手準備', '手準備賽', '準備賽事', '備賽事來', '賽事來說', '事來說,', '來說,此', '說,此種', ',此種干', '此種干擾', '種干擾作', '干擾作梗', '擾作梗會', '作梗會讓', '梗會讓其', '會讓其失', '讓其失望', '其失望憤', '失望憤怒', '望憤怒;', '憤怒;許', '怒;許多', ';許多選', '許多選手', '多選手還', '選手還與', '手還與商', '還與商業', '與商業機', '商業機構', '業機構簽', '機構簽有', '構簽有代', '簽有代言', '有代言商', '代言商品', '言商品契', '商品契約', '品契約,', '契約,相', '約,相關', ',相關廠', '相關廠商', '關廠商贊', '廠商贊助', '商贊助或', '贊助或是', '助或是實', '或是實質', '是實質收', '實質收益', '質收益自', '收益自然', '益自然就', '自然就會', '然就會受', '就會受到', '會受到衝', '受到衝擊', '到衝擊,', '衝擊,許', '擊,許多', ',許多選', '許多選手', '多選手還', '選手還期', '手還期待', '還期待透', '期待透過', '待透過競', '透過競技', '過競技奪', '競技奪牌', '技奪牌,', '奪牌,奠', '牌,奠定', ',奠定轉', '奠定轉戰', '定轉戰其', '轉戰其他', '戰其他職', '其他職業', '他職業表', '職業表演', '業表演舞', '表演舞臺', '演舞臺,', '舞臺,透', '臺,透過', ',透過賽', '透過賽事', '過賽事成', '賽事成績', '事成績成', '成績成為', '績成為開', '成為開創', '為開創後', '開創後續', '創後續事', '後續事業', '續事業跳', '事業跳板', '業跳板。', '跳板。假', '板。假若', '。假若政', '假若政府', '若政府到', '政府到此', '府到此時', '到此時輕', '此時輕舉', '時輕舉妄', '輕舉妄動', '舉妄動,', '妄動,臨', '動,臨時', ',臨時神', '臨時神來', '時神來一', '神來一筆', '來一筆,', '一筆,將', '筆,將攸', ',將攸關', '將攸關重', '攸關重大', '關重大利', '重大利益', '大利益者', '利益者無', '益者無端', '者無端開', '無端開罪', '端開罪,', '開罪,絕', '罪,絕對', ',絕對就', '絕對就是', '對就是在', '就是在生', '是在生產', '在生產政', '生產政治', '產政治票', '政治票房', '治票房毒', '票房毒藥', '房毒藥。', '毒藥。其', '藥。其次', '。其次就', '其次就支', '次就支持', '就支持賽', '支持賽事', '持賽事藉', '賽事藉由', '事藉由贊', '藉由贊助', '由贊助活', '贊助活動', '助活動捐', '活動捐輸', '動捐輸經', '捐輸經費', '輸經費,', '經費,以', '費,以便', ',以便獲', '以便獲得', '便獲得在', '獲得在賽', '得在賽事', '在賽事現', '賽事現場', '事現場進', '現場進行', '場進行廣', '進行廣告', '行廣告宣', '廣告宣傳', '告宣傳之', '宣傳之企', '傳之企業', '之企業來', '企業來說', '業來說,', '來說,此', '說,此時', ',此時政', '此時政治', '時政治攪', '政治攪局', '治攪局必', '攪局必然', '局必然會', '必然會減', '然會減損', '會減損廣', '減損廣告', '損廣告傳', '廣告傳播', '告傳播效', '傳播效應', '播效應,', '效應,對', '應,對於', ',對於掏', '對於掏出', '於掏出大', '掏出大把', '出大把銀', '大把銀兩', '把銀兩,', '銀兩,寄', '兩,寄望', ',寄望配', '寄望配合', '望配合賽', '配合賽事', '合賽事進', '賽事進行', '事進行廣', '進行廣告', '行廣告宣', '廣告宣傳', '告宣傳者', '宣傳者來', '傳者來說', '者來說,', '來說,必', '說,必然', ',必然會', '必然會咬', '然會咬牙', '會咬牙切', '咬牙切齒', '牙切齒,', '切齒,對', '齒,對於', ',對於突', '對於突然', '於突然攪', '突然攪局', '然攪局倡', '攪局倡議', '局倡議抵', '倡議抵制', '議抵制者', '抵制者來', '制者來說', '者來說,', '來說,事', '說,事後', ',事後必', '事後必然', '後必然會', '必然會抱', '然會抱持', '會抱持負', '抱持負面', '持負面態', '負面態度', '面態度,', '態度,政', '度,政治', ',政治獻', '政治獻金', '治獻金或', '獻金或是', '金或是選', '或是選舉', '是選舉贊', '選舉贊助', '舉贊助,', '贊助,這', '助,這些', ',這些企', '這些企業', '些企業金', '企業金主', '業金主都', '金主都會', '主都會記', '都會記在', '會記在心', '記在心裡', '在心裡,', '心裡,政', '裡,政治', ',政治人', '政治人物', '治人物看', '人物看看', '物看看賽', '看看賽事', '看賽事贊', '賽事贊助', '事贊助,', '贊助,要', '助,要是', ',要是還', '要是還不', '是還不識', '還不識相', '不識相,', '識相,體', '相,體會', ',體會不', '體會不出', '會不出此', '不出此事', '出此事敏', '此事敏感', '事敏感程', '敏感程度', '感程度,', '程度,恐', '度,恐怕', ',恐怕會', '恐怕會被', '怕會被人', '會被人譏', '被人譏笑', '人譏笑為', '譏笑為政', '笑為政治', '為政治外', '政治外行', '治外行。', '外行。再', '行。再者', '。再者就', '再者就要', '者就要想', '就要想到', '要想到專', '想到專門', '到專門轉', '專門轉播', '門轉播運', '轉播運動', '播運動賽', '運動賽事', '動賽事,', '賽事,以', '事,以便', ',以便從', '以便從中', '便從中獲', '從中獲取', '中獲取商', '獲取商業', '取商業利', '商業利益', '業利益之', '利益之媒', '益之媒體', '之媒體業', '媒體業者', '體業者,', '業者,再', '者,再加', ',再加上', '再加上依', '加上依附', '上依附在', '依附在此', '附在此產', '在此產業', '此產業鏈', '產業鏈相', '業鏈相關', '鏈相關評', '相關評論', '關評論分', '評論分析', '論分析專', '分析專家', '析專家,', '專家,還', '家,還有', ',還有配', '還有配合', '有配合賽', '配合賽事', '合賽事轉', '賽事轉播', '事轉播進', '轉播進場', '播進場之', '進場之廣', '場之廣告', '之廣告商', '廣告商與', '告商與企', '商與企業', '與企業組', '企業組織', '業組織,', '組織,此', '織,此種', ',此種關', '此種關係', '種關係綿', '關係綿密', '係綿密結', '綿密結構', '密結構複', '結構複雜', '構複雜之', '複雜之利', '雜之利益', '之利益網', '利益網路', '益網路,', '網路,政', '路,政治', ',政治人', '政治人物', '治人物都', '人物都要', '物都要忌', '都要忌憚', '要忌憚三', '忌憚三分', '憚三分,', '三分,所', '分,所以', ',所以如', '所以如今', '以如今箭', '如今箭在', '今箭在弦', '箭在弦上', '在弦上,', '弦上,若', '上,若要', ',若要抵', '若要抵制', '要抵制杯', '抵制杯葛', '制杯葛又', '杯葛又不', '葛又不事', '又不事先', '不事先早', '事先早點', '先早點明', '早點明講', '點明講,', '明講,等', '講,等到', ',等到萬', '等到萬事', '到萬事就', '萬事就緒', '事就緒再', '就緒再出', '緒再出面', '再出面攪', '出面攪局', '面攪局,', '攪局,豈', '局,豈不', ',豈不就', '豈不就是', '不就是自', '就是自討', '是自討沒', '自討沒趣', '討沒趣?', '沒趣?至', '趣?至於', '?至於各', '至於各國', '於各國政', '各國政要', '國政要配', '政要配合', '要配合出', '配合出席', '合出席運', '出席運動', '席運動賽', '運動賽事', '動賽事開', '賽事開幕', '事開幕與', '開幕與閉', '幕與閉幕', '與閉幕典', '閉幕典禮', '幕典禮,', '典禮,順', '禮,順道', ',順道進', '順道進行', '道進行運', '進行運動', '行運動外', '運動外交', '動外交高', '外交高峰', '交高峰會', '高峰會談', '峰會談,', '會談,早', '談,早就', ',早就因', '早就因為', '就因為疫', '因為疫情', '為疫情影', '疫情影響', '情影響,', '影響,各', '響,各國', ',各國高', '各國高層', '國高層都', '高層都不', '層都不願', '都不願承', '不願承擔', '願承擔此', '承擔此種', '擔此種風', '此種風險', '種風險,', '風險,因', '險,因此', ',因此,', '因此,此', '此,此時', ',此時聲', '此時聲稱', '時聲稱所', '聲稱所謂', '稱所謂「', '所謂「政', '謂「政治', '「政治杯', '政治杯葛', '治杯葛」', '杯葛」,', '葛」,將', '」,將焦', ',將焦點', '將焦點集', '焦點集中', '點集中在', '集中在不', '中在不出', '在不出席', '不出席盛', '出席盛會', '席盛會,', '盛會,其', '會,其實', ',其實根', '其實根本', '實根本就', '根本就無', '本就無法', '就無法產', '無法產生', '法產生具', '產生具體', '生具體影', '具體影響', '體影響。', '影響。多', '響。多個', '。多個運', '多個運動', '個運動賽', '運動賽事', '動賽事政', '賽事政要', '事政要出', '政要出席', '要出席致', '出席致賀', '席致賀,', '致賀,早', '賀,早就', ',早就是', '早就是透', '就是透過', '是透過網', '透過網際', '過網際網', '網際網路', '際網路遠', '網路遠距', '路遠距傳', '遠距傳送', '距傳送聲', '傳送聲光', '送聲光影', '聲光影像', '光影像,', '影像,因', '像,因此', ',因此就', '因此就算', '此就算端', '就算端出', '算端出個', '端出個理', '出個理由', '個理由,', '理由,聲', '由,聲稱', ',聲稱杯', '聲稱杯葛', '稱杯葛出', '杯葛出席', '葛出席來', '出席來表', '席來表達', '來表達政', '表達政治', '達政治姿', '政治姿態', '治姿態,', '姿態,恐', '態,恐怕', ',恐怕媒', '恐怕媒體', '怕媒體效', '媒體效應', '體效應更', '效應更是', '應更是無', '更是無足', '是無足輕', '無足輕重', '足輕重。', '輕重。美', '重。美國', '。美國若', '美國若是', '國若是真', '若是真有', '是真有心', '真有心抵', '有心抵制', '心抵制杯', '抵制杯葛', '制杯葛北', '杯葛北京', '葛北京冬', '北京冬奧', '京冬奧,', '冬奧,就', '奧,就必', ',就必須', '就必須及', '必須及早', '須及早表', '及早表態', '早表態,', '表態,如', '態,如今', ',如今在', '如今在視', '今在視訊', '在視訊峰', '視訊峰會', '訊峰會剛', '峰會剛過', '會剛過,', '剛過,突', '過,突然', ',突然開', '突然開始', '然開始釋', '開始釋放', '始釋放消', '釋放消息', '放消息,', '消息,但', '息,但只', ',但只是', '但只是聲', '只是聲稱', '是聲稱在', '聲稱在考', '稱在考慮', '在考慮抵', '考慮抵制', '慮抵制,', '抵制,卻', '制,卻未', ',卻未能', '卻未能提', '未能提出', '能提出肯', '提出肯定', '出肯定訊', '肯定訊息', '定訊息;', '訊息;講', '息;講實', ';講實在', '講實在話', '實在話,', '在話,這', '話,這就', ',這就是', '這就是在', '就是在釋', '是在釋放', '在釋放政', '釋放政治', '放政治氣', '政治氣球', '治氣球,', '氣球,看', '球,看看', ',看看是', '看看是否', '看是否有', '是否有國', '否有國家', '有國家願', '國家願意', '家願意跟', '願意跟進', '意跟進扈', '跟進扈從', '進扈從,', '扈從,否', '從,否則', ',否則貿', '否則貿然', '則貿然宣', '貿然宣布', '然宣布抵', '宣布抵制', '布抵制杯', '抵制杯葛', '制杯葛,', '杯葛,但', '葛,但卻', ',但卻沒', '但卻沒有', '卻沒有其', '沒有其他', '有其他國', '其他國家', '他國家跟', '國家跟進', '家跟進時', '跟進時,', '進時,搞', '時,搞到', ',搞到千', '搞到千山', '到千山我', '千山我獨', '山我獨行', '我獨行無', '獨行無人', '行無人相', '無人相送', '人相送陪', '相送陪伴', '送陪伴,', '陪伴,這', '伴,這種', ',這種淒', '這種淒涼', '種淒涼景', '淒涼景況', '涼景況豈', '景況豈不', '況豈不是', '豈不是弄', '不是弄巧', '是弄巧成', '弄巧成拙', '巧成拙,', '成拙,擺', '拙,擺明', ',擺明讓', '擺明讓自', '明讓自己', '讓自己難', '自己難看', '己難看嗎', '難看嗎?', '看嗎?所', '嗎?所以', '?所以美', '所以美國', '以美國抵', '美國抵制', '國抵制北', '抵制北京', '制北京冬', '北京冬奧', '京冬奧,', '冬奧,不', '奧,不但', ',不但難', '不但難有', '但難有實', '難有實效', '有實效風', '實效風險', '效風險亦', '風險亦高', '險亦高。', '亦高。冬', '高。冬季', '。冬季奧', '冬季奧運', '季奧運其', '奧運其實', '運其實向', '其實向來', '實向來被', '向來被國', '來被國際', '被國際社', '國際社會', '際社會譏', '社會譏為', '會譏為有', '譏為有錢', '為有錢人', '有錢人賽', '錢人賽事', '人賽事,', '賽事,對', '事,對於', ',對於奧', '對於奧運', '於奧運組', '奧運組織', '運組織成', '組織成員', '織成員國', '成員國來', '員國來說', '國來說,', '來說,能', '說,能否', ',能否在', '能否在冬', '否在冬季', '在冬季奧', '冬季奧運', '季奧運闖', '奧運闖出', '運闖出一', '闖出一片', '出一片天', '一片天,', '片天,不', '天,不但', ',不但受', '不但受限', '但受限於', '受限於氣', '限於氣候', '於氣候條', '氣候條件', '候條件,', '條件,相', '件,相關', ',相關場', '相關場地', '關場地、', '場地、設', '地、設施', '、設施、', '設施、器', '施、器具', '、器具以', '器具以及', '具以及訓', '以及訓練', '及訓練過', '訓練過程', '練過程,', '過程,就', '程,就經', ',就經費', '就經費預', '經費預算', '費預算來', '預算來說', '算來說,', '來說,門', '說,門檻', ',門檻相', '門檻相對', '檻相對較', '相對較高', '對較高。', '較高。所', '高。所以', '。所以能', '所以能夠', '以能夠主', '能夠主辦', '夠主辦冬', '主辦冬季', '辦冬季奧', '冬季奧運', '季奧運,', '奧運,不', '運,不但', ',不但本', '不但本身', '但本身在', '本身在相', '身在相關', '在相關賽', '相關賽事', '關賽事項', '賽事項目', '事項目上', '項目上要', '目上要有', '上要有實', '要有實力', '有實力奪', '實力奪牌', '力奪牌,', '奪牌,能', '牌,能夠', ',能夠滿', '能夠滿足', '夠滿足賽', '滿足賽事', '足賽事場', '賽事場地', '事場地與', '場地與設', '地與設施', '與設施規', '設施規格', '施規格,', '規格,其', '格,其實', ',其實亦', '其實亦是', '實亦是國', '亦是國家', '是國家富', '國家富強', '家富強指', '富強指標', '強指標,', '指標,暗', '標,暗示', ',暗示東', '暗示東道', '示東道主', '東道主總', '道主總算', '主總算擠', '總算擠進', '算擠進國', '擠進國際', '進國際社', '國際社會', '際社會富', '社會富裕', '會富裕階', '富裕階層', '裕階層行', '階層行列', '層行列。', '行列。所', '列。所以', '。所以西', '所以西方', '以西方社', '西方社會', '方社會某', '社會某些', '會某些人', '某些人士', '些人士刻', '人士刻意', '士刻意要', '刻意要抵', '意要抵制', '要抵制杯', '抵制杯葛', '制杯葛北', '杯葛北京', '葛北京冬', '北京冬奧', '京冬奧賽', '冬奧賽事', '奧賽事,', '賽事,在', '事,在相', ',在相當', '在相當程', '相當程度', '當程度上', '程度上是', '度上是具', '上是具有', '是具有嫌', '具有嫌貧', '有嫌貧愛', '嫌貧愛富', '貧愛富地', '愛富地位', '富地位歧', '地位歧視', '位歧視因', '歧視因素', '視因素,', '因素,但', '素,但此', ',但此種', '但此種醜', '此種醜陋', '種醜陋心', '醜陋心態', '陋心態確', '心態確實', '態確實是', '確實是不', '實是不能', '是不能放', '不能放在', '能放在檯', '放在檯面', '在檯面,', '檯面,所', '面,所以', ',所以當', '所以當眼', '以當眼睜', '當眼睜睜', '眼睜睜看', '睜睜看到', '睜看到中', '看到中國', '到中國大', '中國大陸', '國大陸獲', '大陸獲得', '陸獲得主', '獲得主辦', '得主辦冬', '主辦冬季', '辦冬季奧', '冬季奧運', '季奧運機', '奧運機會', '運機會,', '機會,其', '會,其實', ',其實就', '其實就是', '實就是對', '就是對其', '是對其社', '對其社會', '其社會富', '社會富裕', '會富裕程', '富裕程度', '裕程度加', '程度加冕', '度加冕認', '加冕認證', '冕認證,', '認證,此', '證,此種', ',此種難', '此種難以', '種難以啟', '難以啟口', '以啟口內', '啟口內心', '口內心酸', '內心酸葡', '心酸葡萄', '酸葡萄不', '葡萄不痛', '萄不痛快', '不痛快感', '痛快感覺', '快感覺,', '感覺,或', '覺,或許', ',或許才', '或許才是', '許才是西', '才是西方', '是西方社', '西方社會', '方社會某', '社會某些', '會某些人', '某些人士', '些人士倡', '人士倡議', '士倡議抵', '倡議抵制', '議抵制北', '抵制北京', '制北京冬', '北京冬奧', '京冬奧,', '冬奧,但', '奧,但卻', ',但卻又', '但卻又羞', '卻又羞於', '又羞於啟', '羞於啟口', '於啟口之', '啟口之真', '口之真正', '之真正原', '真正原因', '正原因吧', '原因吧!']\n"
]
}
],
"source": [
"print(nElem(article, 4))"
]
},
{
"cell_type": "markdown",
"id": "0d0f2fbb",
"metadata": {},
"source": [
"### 說明\n",
"\n",
"- def 是Python的保留字元,是define(定義)的縮寫。注意!在Python中不能用define!\n",
"- 與迴圈相同,定義函式的名稱及論元之後,需要一個冒號。\n",
"- 冒號下面的程式碼,稱之為本體(body),要內縮,一直到整個函式結束為止。\n",
"- 函式的本體,可以是任何的Python程式,包括迴圈、條件檢測。只是要記得,函式本體已經內縮了,如果遇到迴圈、條件檢測的本體(冒號之後、換行的程式內容)要進一步的內縮。\n",
"- 上面的nElem()本體中的 return,其作用是把程式本體計算結果回傳出來。在Python解譯器中,執行nElem(),會直接把值印在螢幕上。在Jupyter Notebook上則需要使用print()。但是,如果只是把結果印在螢幕上,其實直接在函式中使用print()就好了。return最重要的功能,其實是,可以把函式運算出來的值,指派給變數,供其他程式使用!"
]
},
{
"cell_type": "code",
"execution_count": 64,
"id": "c4554ef3",
"metadata": {},
"outputs": [],
"source": [
"# print() 函式執行結果\n",
"\n",
"def nElem02(seq, n):\n",
" '''\n",
" takes two arguments: a sequence and a number n\n",
" returns nGrams of the sequence\n",
" '''\n",
" res = []\n",
" for i in range(len(seq)-(n-1)):\n",
" res.append(seq[i:i+n])\n",
" print(res)"
]
},
{
"cell_type": "code",
"execution_count": 65,
"id": "881fd075",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['美中', '中兩', '兩強', '強領', '領導', '導人', '人視', '視訊', '訊高', '高峰', '峰會', '會甫', '甫告', '告落', '落幕', '幕,', ',各', '各方', '方就', '就傳', '傳出', '出美', '美國', '國有', '有意', '意抵', '抵制', '制北', '北京', '京冬', '冬季', '季奧', '奧運', '運訊', '訊息', '息,', ',但', '但政', '政治', '治是', '是要', '要講', '講究', '究時', '時機', '機與', '與節', '節奏', '奏,', ',就', '就目', '目前', '前端', '端出', '出抵', '抵制', '制北', '北京', '京冬', '冬奧', '奧所', '所能', '能產', '產生', '生各', '各項', '項效', '效應', '應來', '來說', '說,', ',其', '其實', '實相', '相關', '關有', '有利', '利時', '時間', '間節', '節點', '點早', '早就', '就過', '過去', '去,', ',而', '而且', '且展', '展望', '望可', '可能', '能效', '效應', '應亦', '亦相', '相當', '當有', '有限', '限,', ',華', '華盛', '盛頓', '頓決', '決策', '策謀', '謀士', '士若', '若是', '是不', '不能', '能深', '深思', '思熟', '熟慮', '慮,', ',到', '到最', '最後', '後很', '很有', '有可', '可能', '能會', '會弄', '弄巧', '巧成', '成拙', '拙。', '。首', '首先', '先必', '必須', '須指', '指出', '出,', ',在', '在國', '國際', '際社', '社會', '會若', '若要', '要運', '運用', '用抵', '抵制', '制運', '運動', '動賽', '賽事', '事,', ',作', '作為', '為政', '政治', '治表', '表態', '態與', '與殺', '殺傷', '傷對', '對方', '方國', '國際', '際形', '形象', '象手', '手段', '段,', ',甚', '甚至', '至是', '是存', '存心', '心要', '要在', '在實', '實質', '質商', '商業', '業利', '利益', '益上', '上攪', '攪局', '局,', ',必', '必須', '須師', '師出', '出有', '有名', '名才', '才能', '能夠', '夠煽', '煽動', '動人', '人心', '心獲', '獲得', '得響', '響應', '應。', '。因', '因此', '此如', '如何', '何運', '運用', '用特', '特定', '定時', '時間', '間節', '節點', '點,', ',在', '在國', '國際', '際社', '社會', '會對', '對運', '運動', '動賽', '賽事', '事東', '東道', '道主', '主,', ',在', '在國', '國際', '際事', '事務', '務上', '上負', '負面', '面行', '行為', '為記', '記憶', '憶猶', '猶新', '新時', '時斷', '斷然', '然出', '出招', '招,', ',才', '才能', '能夠', '夠鼓', '鼓動', '動風', '風潮', '潮招', '招朋', '朋引', '引伴', '伴形', '形成', '成氣', '氣勢', '勢。', '。儘', '儘管', '管國', '國際', '際社', '社會', '會每', '每個', '個成', '成員', '員都', '都會', '會唱', '唱政', '政治', '治莫', '莫要', '要干', '干預', '預體', '體育', '育高', '高調', '調,', ',尤', '尤其', '其是', '是強', '強權', '權更', '更是', '是滿', '滿嘴', '嘴仁', '仁義', '義道', '道德', '德,', ',幹', '幹起', '起事', '事來', '來卻', '卻是', '是凶', '凶狠', '狠毒', '毒辣', '辣毫', '毫無', '無顧', '顧忌', '忌。', '。不', '不過', '過若', '若真', '真要', '要抵', '抵制', '制運', '運動', '動賽', '賽事', '事時', '時,', ',基', '基本', '本上', '上具', '具有', '有三', '三個', '個面', '面向', '向可', '可以', '以當', '當成', '成打', '打擊', '擊目', '目標', '標;', ';其', '其中', '中包', '包括', '括選', '選手', '手不', '不參', '參加', '加賽', '賽事', '事,', ',企', '企業', '業不', '不捧', '捧場', '場媒', '媒體', '體不', '不轉', '轉播', '播以', '以及', '及政', '政要', '要不', '不出', '出席', '席,', ',以', '以便', '便杯', '杯葛', '葛東', '東道', '道主', '主運', '運動', '動賽', '賽事', '事外', '外交', '交。', '。就', '就目', '目前', '前來', '來說', '說,', ',各', '各方', '方要', '要在', '在明', '明年', '年二', '二月', '月參', '參加', '加北', '北京', '京冬', '冬奧', '奧,', ',或', '或是', '是三', '三月', '月北', '北京', '京冬', '冬季', '季帕', '帕奧', '奧選', '選手', '手,', ',早', '早就', '就蓄', '蓄勢', '勢待', '待發', '發等', '等待', '待出', '出場', '場競', '競技', '技,', ',此', '此時', '時若', '若是', '是突', '突然', '然叫', '叫停', '停,', ',不', '不但', '但對', '對選', '選手', '手準', '準備', '備賽', '賽事', '事來', '來說', '說,', ',此', '此種', '種干', '干擾', '擾作', '作梗', '梗會', '會讓', '讓其', '其失', '失望', '望憤', '憤怒', '怒;', ';許', '許多', '多選', '選手', '手還', '還與', '與商', '商業', '業機', '機構', '構簽', '簽有', '有代', '代言', '言商', '商品', '品契', '契約', '約,', ',相', '相關', '關廠', '廠商', '商贊', '贊助', '助或', '或是', '是實', '實質', '質收', '收益', '益自', '自然', '然就', '就會', '會受', '受到', '到衝', '衝擊', '擊,', ',許', '許多', '多選', '選手', '手還', '還期', '期待', '待透', '透過', '過競', '競技', '技奪', '奪牌', '牌,', ',奠', '奠定', '定轉', '轉戰', '戰其', '其他', '他職', '職業', '業表', '表演', '演舞', '舞臺', '臺,', ',透', '透過', '過賽', '賽事', '事成', '成績', '績成', '成為', '為開', '開創', '創後', '後續', '續事', '事業', '業跳', '跳板', '板。', '。假', '假若', '若政', '政府', '府到', '到此', '此時', '時輕', '輕舉', '舉妄', '妄動', '動,', ',臨', '臨時', '時神', '神來', '來一', '一筆', '筆,', ',將', '將攸', '攸關', '關重', '重大', '大利', '利益', '益者', '者無', '無端', '端開', '開罪', '罪,', ',絕', '絕對', '對就', '就是', '是在', '在生', '生產', '產政', '政治', '治票', '票房', '房毒', '毒藥', '藥。', '。其', '其次', '次就', '就支', '支持', '持賽', '賽事', '事藉', '藉由', '由贊', '贊助', '助活', '活動', '動捐', '捐輸', '輸經', '經費', '費,', ',以', '以便', '便獲', '獲得', '得在', '在賽', '賽事', '事現', '現場', '場進', '進行', '行廣', '廣告', '告宣', '宣傳', '傳之', '之企', '企業', '業來', '來說', '說,', ',此', '此時', '時政', '政治', '治攪', '攪局', '局必', '必然', '然會', '會減', '減損', '損廣', '廣告', '告傳', '傳播', '播效', '效應', '應,', ',對', '對於', '於掏', '掏出', '出大', '大把', '把銀', '銀兩', '兩,', ',寄', '寄望', '望配', '配合', '合賽', '賽事', '事進', '進行', '行廣', '廣告', '告宣', '宣傳', '傳者', '者來', '來說', '說,', ',必', '必然', '然會', '會咬', '咬牙', '牙切', '切齒', '齒,', ',對', '對於', '於突', '突然', '然攪', '攪局', '局倡', '倡議', '議抵', '抵制', '制者', '者來', '來說', '說,', ',事', '事後', '後必', '必然', '然會', '會抱', '抱持', '持負', '負面', '面態', '態度', '度,', ',政', '政治', '治獻', '獻金', '金或', '或是', '是選', '選舉', '舉贊', '贊助', '助,', ',這', '這些', '些企', '企業', '業金', '金主', '主都', '都會', '會記', '記在', '在心', '心裡', '裡,', ',政', '政治', '治人', '人物', '物看', '看看', '看賽', '賽事', '事贊', '贊助', '助,', ',要', '要是', '是還', '還不', '不識', '識相', '相,', ',體', '體會', '會不', '不出', '出此', '此事', '事敏', '敏感', '感程', '程度', '度,', ',恐', '恐怕', '怕會', '會被', '被人', '人譏', '譏笑', '笑為', '為政', '政治', '治外', '外行', '行。', '。再', '再者', '者就', '就要', '要想', '想到', '到專', '專門', '門轉', '轉播', '播運', '運動', '動賽', '賽事', '事,', ',以', '以便', '便從', '從中', '中獲', '獲取', '取商', '商業', '業利', '利益', '益之', '之媒', '媒體', '體業', '業者', '者,', ',再', '再加', '加上', '上依', '依附', '附在', '在此', '此產', '產業', '業鏈', '鏈相', '相關', '關評', '評論', '論分', '分析', '析專', '專家', '家,', ',還', '還有', '有配', '配合', '合賽', '賽事', '事轉', '轉播', '播進', '進場', '場之', '之廣', '廣告', '告商', '商與', '與企', '企業', '業組', '組織', '織,', ',此', '此種', '種關', '關係', '係綿', '綿密', '密結', '結構', '構複', '複雜', '雜之', '之利', '利益', '益網', '網路', '路,', ',政', '政治', '治人', '人物', '物都', '都要', '要忌', '忌憚', '憚三', '三分', '分,', ',所', '所以', '以如', '如今', '今箭', '箭在', '在弦', '弦上', '上,', ',若', '若要', '要抵', '抵制', '制杯', '杯葛', '葛又', '又不', '不事', '事先', '先早', '早點', '點明', '明講', '講,', ',等', '等到', '到萬', '萬事', '事就', '就緒', '緒再', '再出', '出面', '面攪', '攪局', '局,', ',豈', '豈不', '不就', '就是', '是自', '自討', '討沒', '沒趣', '趣?', '?至', '至於', '於各', '各國', '國政', '政要', '要配', '配合', '合出', '出席', '席運', '運動', '動賽', '賽事', '事開', '開幕', '幕與', '與閉', '閉幕', '幕典', '典禮', '禮,', ',順', '順道', '道進', '進行', '行運', '運動', '動外', '外交', '交高', '高峰', '峰會', '會談', '談,', ',早', '早就', '就因', '因為', '為疫', '疫情', '情影', '影響', '響,', ',各', '各國', '國高', '高層', '層都', '都不', '不願', '願承', '承擔', '擔此', '此種', '種風', '風險', '險,', ',因', '因此', '此,', ',此', '此時', '時聲', '聲稱', '稱所', '所謂', '謂「', '「政', '政治', '治杯', '杯葛', '葛」', '」,', ',將', '將焦', '焦點', '點集', '集中', '中在', '在不', '不出', '出席', '席盛', '盛會', '會,', ',其', '其實', '實根', '根本', '本就', '就無', '無法', '法產', '產生', '生具', '具體', '體影', '影響', '響。', '。多', '多個', '個運', '運動', '動賽', '賽事', '事政', '政要', '要出', '出席', '席致', '致賀', '賀,', ',早', '早就', '就是', '是透', '透過', '過網', '網際', '際網', '網路', '路遠', '遠距', '距傳', '傳送', '送聲', '聲光', '光影', '影像', '像,', ',因', '因此', '此就', '就算', '算端', '端出', '出個', '個理', '理由', '由,', ',聲', '聲稱', '稱杯', '杯葛', '葛出', '出席', '席來', '來表', '表達', '達政', '政治', '治姿', '姿態', '態,', ',恐', '恐怕', '怕媒', '媒體', '體效', '效應', '應更', '更是', '是無', '無足', '足輕', '輕重', '重。', '。美', '美國', '國若', '若是', '是真', '真有', '有心', '心抵', '抵制', '制杯', '杯葛', '葛北', '北京', '京冬', '冬奧', '奧,', ',就', '就必', '必須', '須及', '及早', '早表', '表態', '態,', ',如', '如今', '今在', '在視', '視訊', '訊峰', '峰會', '會剛', '剛過', '過,', ',突', '突然', '然開', '開始', '始釋', '釋放', '放消', '消息', '息,', ',但', '但只', '只是', '是聲', '聲稱', '稱在', '在考', '考慮', '慮抵', '抵制', '制,', ',卻', '卻未', '未能', '能提', '提出', '出肯', '肯定', '定訊', '訊息', '息;', ';講', '講實', '實在', '在話', '話,', ',這', '這就', '就是', '是在', '在釋', '釋放', '放政', '政治', '治氣', '氣球', '球,', ',看', '看看', '看是', '是否', '否有', '有國', '國家', '家願', '願意', '意跟', '跟進', '進扈', '扈從', '從,', ',否', '否則', '則貿', '貿然', '然宣', '宣布', '布抵', '抵制', '制杯', '杯葛', '葛,', ',但', '但卻', '卻沒', '沒有', '有其', '其他', '他國', '國家', '家跟', '跟進', '進時', '時,', ',搞', '搞到', '到千', '千山', '山我', '我獨', '獨行', '行無', '無人', '人相', '相送', '送陪', '陪伴', '伴,', ',這', '這種', '種淒', '淒涼', '涼景', '景況', '況豈', '豈不', '不是', '是弄', '弄巧', '巧成', '成拙', '拙,', ',擺', '擺明', '明讓', '讓自', '自己', '己難', '難看', '看嗎', '嗎?', '?所', '所以', '以美', '美國', '國抵', '抵制', '制北', '北京', '京冬', '冬奧', '奧,', ',不', '不但', '但難', '難有', '有實', '實效', '效風', '風險', '險亦', '亦高', '高。', '。冬', '冬季', '季奧', '奧運', '運其', '其實', '實向', '向來', '來被', '被國', '國際', '際社', '社會', '會譏', '譏為', '為有', '有錢', '錢人', '人賽', '賽事', '事,', ',對', '對於', '於奧', '奧運', '運組', '組織', '織成', '成員', '員國', '國來', '來說', '說,', ',能', '能否', '否在', '在冬', '冬季', '季奧', '奧運', '運闖', '闖出', '出一', '一片', '片天', '天,', ',不', '不但', '但受', '受限', '限於', '於氣', '氣候', '候條', '條件', '件,', ',相', '相關', '關場', '場地', '地、', '、設', '設施', '施、', '、器', '器具', '具以', '以及', '及訓', '訓練', '練過', '過程', '程,', ',就', '就經', '經費', '費預', '預算', '算來', '來說', '說,', ',門', '門檻', '檻相', '相對', '對較', '較高', '高。', '。所', '所以', '以能', '能夠', '夠主', '主辦', '辦冬', '冬季', '季奧', '奧運', '運,', ',不', '不但', '但本', '本身', '身在', '在相', '相關', '關賽', '賽事', '事項', '項目', '目上', '上要', '要有', '有實', '實力', '力奪', '奪牌', '牌,', ',能', '能夠', '夠滿', '滿足', '足賽', '賽事', '事場', '場地', '地與', '與設', '設施', '施規', '規格', '格,', ',其', '其實', '實亦', '亦是', '是國', '國家', '家富', '富強', '強指', '指標', '標,', ',暗', '暗示', '示東', '東道', '道主', '主總', '總算', '算擠', '擠進', '進國', '國際', '際社', '社會', '會富', '富裕', '裕階', '階層', '層行', '行列', '列。', '。所', '所以', '以西', '西方', '方社', '社會', '會某', '某些', '些人', '人士', '士刻', '刻意', '意要', '要抵', '抵制', '制杯', '杯葛', '葛北', '北京', '京冬', '冬奧', '奧賽', '賽事', '事,', ',在', '在相', '相當', '當程', '程度', '度上', '上是', '是具', '具有', '有嫌', '嫌貧', '貧愛', '愛富', '富地', '地位', '位歧', '歧視', '視因', '因素', '素,', ',但', '但此', '此種', '種醜', '醜陋', '陋心', '心態', '態確', '確實', '實是', '是不', '不能', '能放', '放在', '在檯', '檯面', '面,', ',所', '所以', '以當', '當眼', '眼睜', '睜睜', '睜看', '看到', '到中', '中國', '國大', '大陸', '陸獲', '獲得', '得主', '主辦', '辦冬', '冬季', '季奧', '奧運', '運機', '機會', '會,', ',其', '其實', '實就', '就是', '是對', '對其', '其社', '社會', '會富', '富裕', '裕程', '程度', '度加', '加冕', '冕認', '認證', '證,', ',此', '此種', '種難', '難以', '以啟', '啟口', '口內', '內心', '心酸', '酸葡', '葡萄', '萄不', '不痛', '痛快', '快感', '感覺', '覺,', ',或', '或許', '許才', '才是', '是西', '西方', '方社', '社會', '會某', '某些', '些人', '人士', '士倡', '倡議', '議抵', '抵制', '制北', '北京', '京冬', '冬奧', '奧,', ',但', '但卻', '卻又', '又羞', '羞於', '於啟', '啟口', '口之', '之真', '真正', '正原', '原因', '因吧', '吧!']\n"
]
}
],
"source": [
"nElem02(article, 2)"
]
},
{
"cell_type": "code",
"execution_count": 68,
"id": "00c13f82",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--------------------------------------------------\n",
"['美中', '中兩', '兩強', '強領', '領導', '導人', '人視', '視訊', '訊高', '高峰', '峰會', '會甫', '甫告', '告落', '落幕', '幕,', ',各', '各方', '方就', '就傳', '傳出', '出美', '美國', '國有', '有意', '意抵', '抵制', '制北', '北京', '京冬', '冬季', '季奧', '奧運', '運訊', '訊息', '息,', ',但', '但政', '政治', '治是', '是要', '要講', '講究', '究時', '時機', '機與', '與節', '節奏', '奏,', ',就', '就目', '目前', '前端', '端出', '出抵', '抵制', '制北', '北京', '京冬', '冬奧', '奧所', '所能', '能產', '產生', '生各', '各項', '項效', '效應', '應來', '來說', '說,', ',其', '其實', '實相', '相關', '關有', '有利', '利時', '時間', '間節', '節點', '點早', '早就', '就過', '過去', '去,', ',而', '而且', '且展', '展望', '望可', '可能', '能效', '效應', '應亦', '亦相', '相當', '當有', '有限', '限,', ',華', '華盛', '盛頓', '頓決', '決策', '策謀', '謀士', '士若', '若是', '是不', '不能', '能深', '深思', '思熟', '熟慮', '慮,', ',到', '到最', '最後', '後很', '很有', '有可', '可能', '能會', '會弄', '弄巧', '巧成', '成拙', '拙。', '。首', '首先', '先必', '必須', '須指', '指出', '出,', ',在', '在國', '國際', '際社', '社會', '會若', '若要', '要運', '運用', '用抵', '抵制', '制運', '運動', '動賽', '賽事', '事,', ',作', '作為', '為政', '政治', '治表', '表態', '態與', '與殺', '殺傷', '傷對', '對方', '方國', '國際', '際形', '形象', '象手', '手段', '段,', ',甚', '甚至', '至是', '是存', '存心', '心要', '要在', '在實', '實質', '質商', '商業', '業利', '利益', '益上', '上攪', '攪局', '局,', ',必', '必須', '須師', '師出', '出有', '有名', '名才', '才能', '能夠', '夠煽', '煽動', '動人', '人心', '心獲', '獲得', '得響', '響應', '應。', '。因', '因此', '此如', '如何', '何運', '運用', '用特', '特定', '定時', '時間', '間節', '節點', '點,', ',在', '在國', '國際', '際社', '社會', '會對', '對運', '運動', '動賽', '賽事', '事東', '東道', '道主', '主,', ',在', '在國', '國際', '際事', '事務', '務上', '上負', '負面', '面行', '行為', '為記', '記憶', '憶猶', '猶新', '新時', '時斷', '斷然', '然出', '出招', '招,', ',才', '才能', '能夠', '夠鼓', '鼓動', '動風', '風潮', '潮招', '招朋', '朋引', '引伴', '伴形', '形成', '成氣', '氣勢', '勢。', '。儘', '儘管', '管國', '國際', '際社', '社會', '會每', '每個', '個成', '成員', '員都', '都會', '會唱', '唱政', '政治', '治莫', '莫要', '要干', '干預', '預體', '體育', '育高', '高調', '調,', ',尤', '尤其', '其是', '是強', '強權', '權更', '更是', '是滿', '滿嘴', '嘴仁', '仁義', '義道', '道德', '德,', ',幹', '幹起', '起事', '事來', '來卻', '卻是', '是凶', '凶狠', '狠毒', '毒辣', '辣毫', '毫無', '無顧', '顧忌', '忌。', '。不', '不過', '過若', '若真', '真要', '要抵', '抵制', '制運', '運動', '動賽', '賽事', '事時', '時,', ',基', '基本', '本上', '上具', '具有', '有三', '三個', '個面', '面向', '向可', '可以', '以當', '當成', '成打', '打擊', '擊目', '目標', '標;', ';其', '其中', '中包', '包括', '括選', '選手', '手不', '不參', '參加', '加賽', '賽事', '事,', ',企', '企業', '業不', '不捧', '捧場', '場媒', '媒體', '體不', '不轉', '轉播', '播以', '以及', '及政', '政要', '要不', '不出', '出席', '席,', ',以', '以便', '便杯', '杯葛', '葛東', '東道', '道主', '主運', '運動', '動賽', '賽事', '事外', '外交', '交。', '。就', '就目', '目前', '前來', '來說', '說,', ',各', '各方', '方要', '要在', '在明', '明年', '年二', '二月', '月參', '參加', '加北', '北京', '京冬', '冬奧', '奧,', ',或', '或是', '是三', '三月', '月北', '北京', '京冬', '冬季', '季帕', '帕奧', '奧選', '選手', '手,', ',早', '早就', '就蓄', '蓄勢', '勢待', '待發', '發等', '等待', '待出', '出場', '場競', '競技', '技,', ',此', '此時', '時若', '若是', '是突', '突然', '然叫', '叫停', '停,', ',不', '不但', '但對', '對選', '選手', '手準', '準備', '備賽', '賽事', '事來', '來說', '說,', ',此', '此種', '種干', '干擾', '擾作', '作梗', '梗會', '會讓', '讓其', '其失', '失望', '望憤', '憤怒', '怒;', ';許', '許多', '多選', '選手', '手還', '還與', '與商', '商業', '業機', '機構', '構簽', '簽有', '有代', '代言', '言商', '商品', '品契', '契約', '約,', ',相', '相關', '關廠', '廠商', '商贊', '贊助', '助或', '或是', '是實', '實質', '質收', '收益', '益自', '自然', '然就', '就會', '會受', '受到', '到衝', '衝擊', '擊,', ',許', '許多', '多選', '選手', '手還', '還期', '期待', '待透', '透過', '過競', '競技', '技奪', '奪牌', '牌,', ',奠', '奠定', '定轉', '轉戰', '戰其', '其他', '他職', '職業', '業表', '表演', '演舞', '舞臺', '臺,', ',透', '透過', '過賽', '賽事', '事成', '成績', '績成', '成為', '為開', '開創', '創後', '後續', '續事', '事業', '業跳', '跳板', '板。', '。假', '假若', '若政', '政府', '府到', '到此', '此時', '時輕', '輕舉', '舉妄', '妄動', '動,', ',臨', '臨時', '時神', '神來', '來一', '一筆', '筆,', ',將', '將攸', '攸關', '關重', '重大', '大利', '利益', '益者', '者無', '無端', '端開', '開罪', '罪,', ',絕', '絕對', '對就', '就是', '是在', '在生', '生產', '產政', '政治', '治票', '票房', '房毒', '毒藥', '藥。', '。其', '其次', '次就', '就支', '支持', '持賽', '賽事', '事藉', '藉由', '由贊', '贊助', '助活', '活動', '動捐', '捐輸', '輸經', '經費', '費,', ',以', '以便', '便獲', '獲得', '得在', '在賽', '賽事', '事現', '現場', '場進', '進行', '行廣', '廣告', '告宣', '宣傳', '傳之', '之企', '企業', '業來', '來說', '說,', ',此', '此時', '時政', '政治', '治攪', '攪局', '局必', '必然', '然會', '會減', '減損', '損廣', '廣告', '告傳', '傳播', '播效', '效應', '應,', ',對', '對於', '於掏', '掏出', '出大', '大把', '把銀', '銀兩', '兩,', ',寄', '寄望', '望配', '配合', '合賽', '賽事', '事進', '進行', '行廣', '廣告', '告宣', '宣傳', '傳者', '者來', '來說', '說,', ',必', '必然', '然會', '會咬', '咬牙', '牙切', '切齒', '齒,', ',對', '對於', '於突', '突然', '然攪', '攪局', '局倡', '倡議', '議抵', '抵制', '制者', '者來', '來說', '說,', ',事', '事後', '後必', '必然', '然會', '會抱', '抱持', '持負', '負面', '面態', '態度', '度,', ',政', '政治', '治獻', '獻金', '金或', '或是', '是選', '選舉', '舉贊', '贊助', '助,', ',這', '這些', '些企', '企業', '業金', '金主', '主都', '都會', '會記', '記在', '在心', '心裡', '裡,', ',政', '政治', '治人', '人物', '物看', '看看', '看賽', '賽事', '事贊', '贊助', '助,', ',要', '要是', '是還', '還不', '不識', '識相', '相,', ',體', '體會', '會不', '不出', '出此', '此事', '事敏', '敏感', '感程', '程度', '度,', ',恐', '恐怕', '怕會', '會被', '被人', '人譏', '譏笑', '笑為', '為政', '政治', '治外', '外行', '行。', '。再', '再者', '者就', '就要', '要想', '想到', '到專', '專門', '門轉', '轉播', '播運', '運動', '動賽', '賽事', '事,', ',以', '以便', '便從', '從中', '中獲', '獲取', '取商', '商業', '業利', '利益', '益之', '之媒', '媒體', '體業', '業者', '者,', ',再', '再加', '加上', '上依', '依附', '附在', '在此', '此產', '產業', '業鏈', '鏈相', '相關', '關評', '評論', '論分', '分析', '析專', '專家', '家,', ',還', '還有', '有配', '配合', '合賽', '賽事', '事轉', '轉播', '播進', '進場', '場之', '之廣', '廣告', '告商', '商與', '與企', '企業', '業組', '組織', '織,', ',此', '此種', '種關', '關係', '係綿', '綿密', '密結', '結構', '構複', '複雜', '雜之', '之利', '利益', '益網', '網路', '路,', ',政', '政治', '治人', '人物', '物都', '都要', '要忌', '忌憚', '憚三', '三分', '分,', ',所', '所以', '以如', '如今', '今箭', '箭在', '在弦', '弦上', '上,', ',若', '若要', '要抵', '抵制', '制杯', '杯葛', '葛又', '又不', '不事', '事先', '先早', '早點', '點明', '明講', '講,', ',等', '等到', '到萬', '萬事', '事就', '就緒', '緒再', '再出', '出面', '面攪', '攪局', '局,', ',豈', '豈不', '不就', '就是', '是自', '自討', '討沒', '沒趣', '趣?', '?至', '至於', '於各', '各國', '國政', '政要', '要配', '配合', '合出', '出席', '席運', '運動', '動賽', '賽事', '事開', '開幕', '幕與', '與閉', '閉幕', '幕典', '典禮', '禮,', ',順', '順道', '道進', '進行', '行運', '運動', '動外', '外交', '交高', '高峰', '峰會', '會談', '談,', ',早', '早就', '就因', '因為', '為疫', '疫情', '情影', '影響', '響,', ',各', '各國', '國高', '高層', '層都', '都不', '不願', '願承', '承擔', '擔此', '此種', '種風', '風險', '險,', ',因', '因此', '此,', ',此', '此時', '時聲', '聲稱', '稱所', '所謂', '謂「', '「政', '政治', '治杯', '杯葛', '葛」', '」,', ',將', '將焦', '焦點', '點集', '集中', '中在', '在不', '不出', '出席', '席盛', '盛會', '會,', ',其', '其實', '實根', '根本', '本就', '就無', '無法', '法產', '產生', '生具', '具體', '體影', '影響', '響。', '。多', '多個', '個運', '運動', '動賽', '賽事', '事政', '政要', '要出', '出席', '席致', '致賀', '賀,', ',早', '早就', '就是', '是透', '透過', '過網', '網際', '際網', '網路', '路遠', '遠距', '距傳', '傳送', '送聲', '聲光', '光影', '影像', '像,', ',因', '因此', '此就', '就算', '算端', '端出', '出個', '個理', '理由', '由,', ',聲', '聲稱', '稱杯', '杯葛', '葛出', '出席', '席來', '來表', '表達', '達政', '政治', '治姿', '姿態', '態,', ',恐', '恐怕', '怕媒', '媒體', '體效', '效應', '應更', '更是', '是無', '無足', '足輕', '輕重', '重。', '。美', '美國', '國若', '若是', '是真', '真有', '有心', '心抵', '抵制', '制杯', '杯葛', '葛北', '北京', '京冬', '冬奧', '奧,', ',就', '就必', '必須', '須及', '及早', '早表', '表態', '態,', ',如', '如今', '今在', '在視', '視訊', '訊峰', '峰會', '會剛', '剛過', '過,', ',突', '突然', '然開', '開始', '始釋', '釋放', '放消', '消息', '息,', ',但', '但只', '只是', '是聲', '聲稱', '稱在', '在考', '考慮', '慮抵', '抵制', '制,', ',卻', '卻未', '未能', '能提', '提出', '出肯', '肯定', '定訊', '訊息', '息;', ';講', '講實', '實在', '在話', '話,', ',這', '這就', '就是', '是在', '在釋', '釋放', '放政', '政治', '治氣', '氣球', '球,', ',看', '看看', '看是', '是否', '否有', '有國', '國家', '家願', '願意', '意跟', '跟進', '進扈', '扈從', '從,', ',否', '否則', '則貿', '貿然', '然宣', '宣布', '布抵', '抵制', '制杯', '杯葛', '葛,', ',但', '但卻', '卻沒', '沒有', '有其', '其他', '他國', '國家', '家跟', '跟進', '進時', '時,', ',搞', '搞到', '到千', '千山', '山我', '我獨', '獨行', '行無', '無人', '人相', '相送', '送陪', '陪伴', '伴,', ',這', '這種', '種淒', '淒涼', '涼景', '景況', '況豈', '豈不', '不是', '是弄', '弄巧', '巧成', '成拙', '拙,', ',擺', '擺明', '明讓', '讓自', '自己', '己難', '難看', '看嗎', '嗎?', '?所', '所以', '以美', '美國', '國抵', '抵制', '制北', '北京', '京冬', '冬奧', '奧,', ',不', '不但', '但難', '難有', '有實', '實效', '效風', '風險', '險亦', '亦高', '高。', '。冬', '冬季', '季奧', '奧運', '運其', '其實', '實向', '向來', '來被', '被國', '國際', '際社', '社會', '會譏', '譏為', '為有', '有錢', '錢人', '人賽', '賽事', '事,', ',對', '對於', '於奧', '奧運', '運組', '組織', '織成', '成員', '員國', '國來', '來說', '說,', ',能', '能否', '否在', '在冬', '冬季', '季奧', '奧運', '運闖', '闖出', '出一', '一片', '片天', '天,', ',不', '不但', '但受', '受限', '限於', '於氣', '氣候', '候條', '條件', '件,', ',相', '相關', '關場', '場地', '地、', '、設', '設施', '施、', '、器', '器具', '具以', '以及', '及訓', '訓練', '練過', '過程', '程,', ',就', '就經', '經費', '費預', '預算', '算來', '來說', '說,', ',門', '門檻', '檻相', '相對', '對較', '較高', '高。', '。所', '所以', '以能', '能夠', '夠主', '主辦', '辦冬', '冬季', '季奧', '奧運', '運,', ',不', '不但', '但本', '本身', '身在', '在相', '相關', '關賽', '賽事', '事項', '項目', '目上', '上要', '要有', '有實', '實力', '力奪', '奪牌', '牌,', ',能', '能夠', '夠滿', '滿足', '足賽', '賽事', '事場', '場地', '地與', '與設', '設施', '施規', '規格', '格,', ',其', '其實', '實亦', '亦是', '是國', '國家', '家富', '富強', '強指', '指標', '標,', ',暗', '暗示', '示東', '東道', '道主', '主總', '總算', '算擠', '擠進', '進國', '國際', '際社', '社會', '會富', '富裕', '裕階', '階層', '層行', '行列', '列。', '。所', '所以', '以西', '西方', '方社', '社會', '會某', '某些', '些人', '人士', '士刻', '刻意', '意要', '要抵', '抵制', '制杯', '杯葛', '葛北', '北京', '京冬', '冬奧', '奧賽', '賽事', '事,', ',在', '在相', '相當', '當程', '程度', '度上', '上是', '是具', '具有', '有嫌', '嫌貧', '貧愛', '愛富', '富地', '地位', '位歧', '歧視', '視因', '因素', '素,', ',但', '但此', '此種', '種醜', '醜陋', '陋心', '心態', '態確', '確實', '實是', '是不', '不能', '能放', '放在', '在檯', '檯面', '面,', ',所', '所以', '以當', '當眼', '眼睜', '睜睜', '睜看', '看到', '到中', '中國', '國大', '大陸', '陸獲', '獲得', '得主', '主辦', '辦冬', '冬季', '季奧', '奧運', '運機', '機會', '會,', ',其', '其實', '實就', '就是', '是對', '對其', '其社', '社會', '會富', '富裕', '裕程', '程度', '度加', '加冕', '冕認', '認證', '證,', ',此', '此種', '種難', '難以', '以啟', '啟口', '口內', '內心', '心酸', '酸葡', '葡萄', '萄不', '不痛', '痛快', '快感', '感覺', '覺,', ',或', '或許', '許才', '才是', '是西', '西方', '方社', '社會', '會某', '某些', '些人', '人士', '士倡', '倡議', '議抵', '抵制', '制北', '北京', '京冬', '冬奧', '奧,', ',但', '但卻', '卻又', '又羞', '羞於', '於啟', '啟口', '口之', '之真', '真正', '正原', '原因', '因吧', '吧!']\n",
"--------------------------------------------------\n",
"bigramFreq01:\n",
"Counter({'賽事': 19, '抵制': 12, '政治': 12, '北京': 8, '京冬': 8, '來說': 8, '說,': 8, '社會': 8, '運動': 8, '國際': 7, '動賽': 7, '杯葛': 7, '冬季': 6, '奧運': 6, '冬奧': 6, ',此': 6, '季奧': 5, ',但': 5, '其實': 5, '相關': 5, '際社': 5, '事,': 5, '選手': 5, '出席': 5, '此種': 5, '就是': 5, '所以': 5, '制北': 4, '效應': 4, ',其': 4, '早就': 4, ',在': 4, '利益': 4, '攪局': 4, '能夠': 4, '企業': 4, '奧,': 4, '此時': 4, ',不': 4, '不但': 4, '贊助': 4, '廣告': 4, '制杯': 4, '峰會': 3, ',各': 3, '美國': 3, ',就': 3, '若是': 3, '必須': 3, '在國': 3, '商業': 3, '獲得': 3, '因此': 3, '東道': 3, '道主': 3, '要抵': 3, '媒體': 3, '轉播': 3, '政要': 3, '不出': 3, ',以': 3, '以便': 3, '或是': 3, ',早': 3, '突然': 3, '透過': 3, '進行': 3, '必然': 3, '然會': 3, ',對': 3, '對於': 3, '配合': 3, ',政': 3, ',這': 3, '程度': 3, '聲稱': 3, '國家': 3, '視訊': 2, '高峰': 2, '各方': 2, '訊息': 2, '息,': 2, '就目': 2, '目前': 2, '端出': 2, '產生': 2, '時間': 2, '間節': 2, '節點': 2, '可能': 2, '相當': 2, '是不': 2, '不能': 2, '弄巧': 2, '巧成': 2, '成拙': 2, '若要': 2, '運用': 2, '制運': 2, '為政': 2, '表態': 2, '要在': 2, '實質': 2, '業利': 2, '局,': 2, ',必': 2, '才能': 2, '負面': 2, '成員': 2, '都會': 2, '更是': 2, '事來': 2, '時,': 2, '具有': 2, '以當': 2, '參加': 2, '以及': 2, '外交': 2, ',或': 2, '競技': 2, '許多': 2, '多選': 2, '手還': 2, ',相': 2, '奪牌': 2, '牌,': 2, '其他': 2, ',將': 2, '是在': 2, '經費': 2, '行廣': 2, '告宣': 2, '宣傳': 2, '合賽': 2, '者來': 2, '倡議': 2, '議抵': 2, '度,': 2, '助,': 2, '治人': 2, '人物': 2, '看看': 2, ',恐': 2, '恐怕': 2, '組織': 2, '網路': 2, ',所': 2, '如今': 2, '豈不': 2, '各國': 2, '影響': 2, '風險': 2, ',因': 2, '會,': 2, '態,': 2, '葛北': 2, '釋放': 2, '跟進': 2, '但卻': 2, '有實': 2, '高。': 2, ',能': 2, '場地': 2, '設施': 2, '。所': 2, '主辦': 2, '辦冬': 2, '在相': 2, '會富': 2, '富裕': 2, '西方': 2, '方社': 2, '會某': 2, '某些': 2, '些人': 2, '人士': 2, '啟口': 2, '美中': 1, '中兩': 1, '兩強': 1, '強領': 1, '領導': 1, '導人': 1, '人視': 1, '訊高': 1, '會甫': 1, '甫告': 1, '告落': 1, '落幕': 1, '幕,': 1, '方就': 1, '就傳': 1, '傳出': 1, '出美': 1, '國有': 1, '有意': 1, '意抵': 1, '運訊': 1, '但政': 1, '治是': 1, '是要': 1, '要講': 1, '講究': 1, '究時': 1, '時機': 1, '機與': 1, '與節': 1, '節奏': 1, '奏,': 1, '前端': 1, '出抵': 1, '奧所': 1, '所能': 1, '能產': 1, '生各': 1, '各項': 1, '項效': 1, '應來': 1, '實相': 1, '關有': 1, '有利': 1, '利時': 1, '點早': 1, '就過': 1, '過去': 1, '去,': 1, ',而': 1, '而且': 1, '且展': 1, '展望': 1, '望可': 1, '能效': 1, '應亦': 1, '亦相': 1, '當有': 1, '有限': 1, '限,': 1, ',華': 1, '華盛': 1, '盛頓': 1, '頓決': 1, '決策': 1, '策謀': 1, '謀士': 1, '士若': 1, '能深': 1, '深思': 1, '思熟': 1, '熟慮': 1, '慮,': 1, ',到': 1, '到最': 1, '最後': 1, '後很': 1, '很有': 1, '有可': 1, '能會': 1, '會弄': 1, '拙。': 1, '。首': 1, '首先': 1, '先必': 1, '須指': 1, '指出': 1, '出,': 1, '會若': 1, '要運': 1, '用抵': 1, ',作': 1, '作為': 1, '治表': 1, '態與': 1, '與殺': 1, '殺傷': 1, '傷對': 1, '對方': 1, '方國': 1, '際形': 1, '形象': 1, '象手': 1, '手段': 1, '段,': 1, ',甚': 1, '甚至': 1, '至是': 1, '是存': 1, '存心': 1, '心要': 1, '在實': 1, '質商': 1, '益上': 1, '上攪': 1, '須師': 1, '師出': 1, '出有': 1, '有名': 1, '名才': 1, '夠煽': 1, '煽動': 1, '動人': 1, '人心': 1, '心獲': 1, '得響': 1, '響應': 1, '應。': 1, '。因': 1, '此如': 1, '如何': 1, '何運': 1, '用特': 1, '特定': 1, '定時': 1, '點,': 1, '會對': 1, '對運': 1, '事東': 1, '主,': 1, '際事': 1, '事務': 1, '務上': 1, '上負': 1, '面行': 1, '行為': 1, '為記': 1, '記憶': 1, '憶猶': 1, '猶新': 1, '新時': 1, '時斷': 1, '斷然': 1, '然出': 1, '出招': 1, '招,': 1, ',才': 1, '夠鼓': 1, '鼓動': 1, '動風': 1, '風潮': 1, '潮招': 1, '招朋': 1, '朋引': 1, '引伴': 1, '伴形': 1, '形成': 1, '成氣': 1, '氣勢': 1, '勢。': 1, '。儘': 1, '儘管': 1, '管國': 1, '會每': 1, '每個': 1, '個成': 1, '員都': 1, '會唱': 1, '唱政': 1, '治莫': 1, '莫要': 1, '要干': 1, '干預': 1, '預體': 1, '體育': 1, '育高': 1, '高調': 1, '調,': 1, ',尤': 1, '尤其': 1, '其是': 1, '是強': 1, '強權': 1, '權更': 1, '是滿': 1, '滿嘴': 1, '嘴仁': 1, '仁義': 1, '義道': 1, '道德': 1, '德,': 1, ',幹': 1, '幹起': 1, '起事': 1, '來卻': 1, '卻是': 1, '是凶': 1, '凶狠': 1, '狠毒': 1, '毒辣': 1, '辣毫': 1, '毫無': 1, '無顧': 1, '顧忌': 1, '忌。': 1, '。不': 1, '不過': 1, '過若': 1, '若真': 1, '真要': 1, '事時': 1, ',基': 1, '基本': 1, '本上': 1, '上具': 1, '有三': 1, '三個': 1, '個面': 1, '面向': 1, '向可': 1, '可以': 1, '當成': 1, '成打': 1, '打擊': 1, '擊目': 1, '目標': 1, '標;': 1, ';其': 1, '其中': 1, '中包': 1, '包括': 1, '括選': 1, '手不': 1, '不參': 1, '加賽': 1, ',企': 1, '業不': 1, '不捧': 1, '捧場': 1, '場媒': 1, '體不': 1, '不轉': 1, '播以': 1, '及政': 1, '要不': 1, '席,': 1, '便杯': 1, '葛東': 1, '主運': 1, '事外': 1, '交。': 1, '。就': 1, '前來': 1, '方要': 1, '在明': 1, '明年': 1, '年二': 1, '二月': 1, '月參': 1, '加北': 1, '是三': 1, '三月': 1, '月北': 1, '季帕': 1, '帕奧': 1, '奧選': 1, '手,': 1, '就蓄': 1, '蓄勢': 1, '勢待': 1, '待發': 1, '發等': 1, '等待': 1, '待出': 1, '出場': 1, '場競': 1, '技,': 1, '時若': 1, '是突': 1, '然叫': 1, '叫停': 1, '停,': 1, '但對': 1, '對選': 1, '手準': 1, '準備': 1, '備賽': 1, '種干': 1, '干擾': 1, '擾作': 1, '作梗': 1, '梗會': 1, '會讓': 1, '讓其': 1, '其失': 1, '失望': 1, '望憤': 1, '憤怒': 1, '怒;': 1, ';許': 1, '還與': 1, '與商': 1, '業機': 1, '機構': 1, '構簽': 1, '簽有': 1, '有代': 1, '代言': 1, '言商': 1, '商品': 1, '品契': 1, '契約': 1, '約,': 1, '關廠': 1, '廠商': 1, '商贊': 1, '助或': 1, '是實': 1, '質收': 1, '收益': 1, '益自': 1, '自然': 1, '然就': 1, '就會': 1, '會受': 1, '受到': 1, '到衝': 1, '衝擊': 1, '擊,': 1, ',許': 1, '還期': 1, '期待': 1, '待透': 1, '過競': 1, '技奪': 1, ',奠': 1, '奠定': 1, '定轉': 1, '轉戰': 1, '戰其': 1, '他職': 1, '職業': 1, '業表': 1, '表演': 1, '演舞': 1, '舞臺': 1, '臺,': 1, ',透': 1, '過賽': 1, '事成': 1, '成績': 1, '績成': 1, '成為': 1, '為開': 1, '開創': 1, '創後': 1, '後續': 1, '續事': 1, '事業': 1, '業跳': 1, '跳板': 1, '板。': 1, '。假': 1, '假若': 1, '若政': 1, '政府': 1, '府到': 1, '到此': 1, '時輕': 1, '輕舉': 1, '舉妄': 1, '妄動': 1, '動,': 1, ',臨': 1, '臨時': 1, '時神': 1, '神來': 1, '來一': 1, '一筆': 1, '筆,': 1, '將攸': 1, '攸關': 1, '關重': 1, '重大': 1, '大利': 1, '益者': 1, '者無': 1, '無端': 1, '端開': 1, '開罪': 1, '罪,': 1, ',絕': 1, '絕對': 1, '對就': 1, '在生': 1, '生產': 1, '產政': 1, '治票': 1, '票房': 1, '房毒': 1, '毒藥': 1, '藥。': 1, '。其': 1, '其次': 1, '次就': 1, '就支': 1, '支持': 1, '持賽': 1, '事藉': 1, '藉由': 1, '由贊': 1, '助活': 1, '活動': 1, '動捐': 1, '捐輸': 1, '輸經': 1, '費,': 1, '便獲': 1, '得在': 1, '在賽': 1, '事現': 1, '現場': 1, '場進': 1, '傳之': 1, '之企': 1, '業來': 1, '時政': 1, '治攪': 1, '局必': 1, '會減': 1, '減損': 1, '損廣': 1, '告傳': 1, '傳播': 1, '播效': 1, '應,': 1, '於掏': 1, '掏出': 1, '出大': 1, '大把': 1, '把銀': 1, '銀兩': 1, '兩,': 1, ',寄': 1, '寄望': 1, '望配': 1, '事進': 1, '傳者': 1, '會咬': 1, '咬牙': 1, '牙切': 1, '切齒': 1, '齒,': 1, '於突': 1, '然攪': 1, '局倡': 1, '制者': 1, ',事': 1, '事後': 1, '後必': 1, '會抱': 1, '抱持': 1, '持負': 1, '面態': 1, '態度': 1, '治獻': 1, '獻金': 1, '金或': 1, '是選': 1, '選舉': 1, '舉贊': 1, '這些': 1, '些企': 1, '業金': 1, '金主': 1, '主都': 1, '會記': 1, '記在': 1, '在心': 1, '心裡': 1, '裡,': 1, '物看': 1, '看賽': 1, '事贊': 1, ',要': 1, '要是': 1, '是還': 1, '還不': 1, '不識': 1, '識相': 1, '相,': 1, ',體': 1, '體會': 1, '會不': 1, '出此': 1, '此事': 1, '事敏': 1, '敏感': 1, '感程': 1, '怕會': 1, '會被': 1, '被人': 1, '人譏': 1, '譏笑': 1, '笑為': 1, '治外': 1, '外行': 1, '行。': 1, '。再': 1, '再者': 1, '者就': 1, '就要': 1, '要想': 1, '想到': 1, '到專': 1, '專門': 1, '門轉': 1, '播運': 1, '便從': 1, '從中': 1, '中獲': 1, '獲取': 1, '取商': 1, '益之': 1, '之媒': 1, '體業': 1, '業者': 1, '者,': 1, ',再': 1, '再加': 1, '加上': 1, '上依': 1, '依附': 1, '附在': 1, '在此': 1, '此產': 1, '產業': 1, '業鏈': 1, '鏈相': 1, '關評': 1, '評論': 1, '論分': 1, '分析': 1, '析專': 1, '專家': 1, '家,': 1, ',還': 1, '還有': 1, '有配': 1, '事轉': 1, '播進': 1, '進場': 1, '場之': 1, '之廣': 1, '告商': 1, '商與': 1, '與企': 1, '業組': 1, '織,': 1, '種關': 1, '關係': 1, '係綿': 1, '綿密': 1, '密結': 1, '結構': 1, '構複': 1, '複雜': 1, '雜之': 1, '之利': 1, '益網': 1, '路,': 1, '物都': 1, '都要': 1, '要忌': 1, '忌憚': 1, '憚三': 1, '三分': 1, '分,': 1, '以如': 1, '今箭': 1, '箭在': 1, '在弦': 1, '弦上': 1, '上,': 1, ',若': 1, '葛又': 1, '又不': 1, '不事': 1, '事先': 1, '先早': 1, '早點': 1, '點明': 1, '明講': 1, '講,': 1, ',等': 1, '等到': 1, '到萬': 1, '萬事': 1, '事就': 1, '就緒': 1, '緒再': 1, '再出': 1, '出面': 1, '面攪': 1, ',豈': 1, '不就': 1, '是自': 1, '自討': 1, '討沒': 1, '沒趣': 1, '趣?': 1, '?至': 1, '至於': 1, '於各': 1, '國政': 1, '要配': 1, '合出': 1, '席運': 1, '事開': 1, '開幕': 1, '幕與': 1, '與閉': 1, '閉幕': 1, '幕典': 1, '典禮': 1, '禮,': 1, ',順': 1, '順道': 1, '道進': 1, '行運': 1, '動外': 1, '交高': 1, '會談': 1, '談,': 1, '就因': 1, '因為': 1, '為疫': 1, '疫情': 1, '情影': 1, '響,': 1, '國高': 1, '高層': 1, '層都': 1, '都不': 1, '不願': 1, '願承': 1, '承擔': 1, '擔此': 1, '種風': 1, '險,': 1, '此,': 1, '時聲': 1, '稱所': 1, '所謂': 1, '謂「': 1, '「政': 1, '治杯': 1, '葛」': 1, '」,': 1, '將焦': 1, '焦點': 1, '點集': 1, '集中': 1, '中在': 1, '在不': 1, '席盛': 1, '盛會': 1, '實根': 1, '根本': 1, '本就': 1, '就無': 1, '無法': 1, '法產': 1, '生具': 1, '具體': 1, '體影': 1, '響。': 1, '。多': 1, '多個': 1, '個運': 1, '事政': 1, '要出': 1, '席致': 1, '致賀': 1, '賀,': 1, '是透': 1, '過網': 1, '網際': 1, '際網': 1, '路遠': 1, '遠距': 1, '距傳': 1, '傳送': 1, '送聲': 1, '聲光': 1, '光影': 1, '影像': 1, '像,': 1, '此就': 1, '就算': 1, '算端': 1, '出個': 1, '個理': 1, '理由': 1, '由,': 1, ',聲': 1, '稱杯': 1, '葛出': 1, '席來': 1, '來表': 1, '表達': 1, '達政': 1, '治姿': 1, '姿態': 1, '怕媒': 1, '體效': 1, '應更': 1, '是無': 1, '無足': 1, '足輕': 1, '輕重': 1, '重。': 1, '。美': 1, '國若': 1, '是真': 1, '真有': 1, '有心': 1, '心抵': 1, '就必': 1, '須及': 1, '及早': 1, '早表': 1, ',如': 1, '今在': 1, '在視': 1, '訊峰': 1, '會剛': 1, '剛過': 1, '過,': 1, ',突': 1, '然開': 1, '開始': 1, '始釋': 1, '放消': 1, '消息': 1, '但只': 1, '只是': 1, '是聲': 1, '稱在': 1, '在考': 1, '考慮': 1, '慮抵': 1, '制,': 1, ',卻': 1, '卻未': 1, '未能': 1, '能提': 1, '提出': 1, '出肯': 1, '肯定': 1, '定訊': 1, '息;': 1, ';講': 1, '講實': 1, '實在': 1, '在話': 1, '話,': 1, '這就': 1, '在釋': 1, '放政': 1, '治氣': 1, '氣球': 1, '球,': 1, ',看': 1, '看是': 1, '是否': 1, '否有': 1, '有國': 1, '家願': 1, '願意': 1, '意跟': 1, '進扈': 1, '扈從': 1, '從,': 1, ',否': 1, '否則': 1, '則貿': 1, '貿然': 1, '然宣': 1, '宣布': 1, '布抵': 1, '葛,': 1, '卻沒': 1, '沒有': 1, '有其': 1, '他國': 1, '家跟': 1, '進時': 1, ',搞': 1, '搞到': 1, '到千': 1, '千山': 1, '山我': 1, '我獨': 1, '獨行': 1, '行無': 1, '無人': 1, '人相': 1, '相送': 1, '送陪': 1, '陪伴': 1, '伴,': 1, '這種': 1, '種淒': 1, '淒涼': 1, '涼景': 1, '景況': 1, '況豈': 1, '不是': 1, '是弄': 1, '拙,': 1, ',擺': 1, '擺明': 1, '明讓': 1, '讓自': 1, '自己': 1, '己難': 1, '難看': 1, '看嗎': 1, '嗎?': 1, '?所': 1, '以美': 1, '國抵': 1, '但難': 1, '難有': 1, '實效': 1, '效風': 1, '險亦': 1, '亦高': 1, '。冬': 1, '運其': 1, '實向': 1, '向來': 1, '來被': 1, '被國': 1, '會譏': 1, '譏為': 1, '為有': 1, '有錢': 1, '錢人': 1, '人賽': 1, '於奧': 1, '運組': 1, '織成': 1, '員國': 1, '國來': 1, '能否': 1, '否在': 1, '在冬': 1, '運闖': 1, '闖出': 1, '出一': 1, '一片': 1, '片天': 1, '天,': 1, '但受': 1, '受限': 1, '限於': 1, '於氣': 1, '氣候': 1, '候條': 1, '條件': 1, '件,': 1, '關場': 1, '地、': 1, '、設': 1, '施、': 1, '、器': 1, '器具': 1, '具以': 1, '及訓': 1, '訓練': 1, '練過': 1, '過程': 1, '程,': 1, '就經': 1, '費預': 1, '預算': 1, '算來': 1, ',門': 1, '門檻': 1, '檻相': 1, '相對': 1, '對較': 1, '較高': 1, '以能': 1, '夠主': 1, '運,': 1, '但本': 1, '本身': 1, '身在': 1, '關賽': 1, '事項': 1, '項目': 1, '目上': 1, '上要': 1, '要有': 1, '實力': 1, '力奪': 1, '夠滿': 1, '滿足': 1, '足賽': 1, '事場': 1, '地與': 1, '與設': 1, '施規': 1, '規格': 1, '格,': 1, '實亦': 1, '亦是': 1, '是國': 1, '家富': 1, '富強': 1, '強指': 1, '指標': 1, '標,': 1, ',暗': 1, '暗示': 1, '示東': 1, '主總': 1, '總算': 1, '算擠': 1, '擠進': 1, '進國': 1, '裕階': 1, '階層': 1, '層行': 1, '行列': 1, '列。': 1, '以西': 1, '士刻': 1, '刻意': 1, '意要': 1, '奧賽': 1, '當程': 1, '度上': 1, '上是': 1, '是具': 1, '有嫌': 1, '嫌貧': 1, '貧愛': 1, '愛富': 1, '富地': 1, '地位': 1, '位歧': 1, '歧視': 1, '視因': 1, '因素': 1, '素,': 1, '但此': 1, '種醜': 1, '醜陋': 1, '陋心': 1, '心態': 1, '態確': 1, '確實': 1, '實是': 1, '能放': 1, '放在': 1, '在檯': 1, '檯面': 1, '面,': 1, '當眼': 1, '眼睜': 1, '睜睜': 1, '睜看': 1, '看到': 1, '到中': 1, '中國': 1, '國大': 1, '大陸': 1, '陸獲': 1, '得主': 1, '運機': 1, '機會': 1, '實就': 1, '是對': 1, '對其': 1, '其社': 1, '裕程': 1, '度加': 1, '加冕': 1, '冕認': 1, '認證': 1, '證,': 1, '種難': 1, '難以': 1, '以啟': 1, '口內': 1, '內心': 1, '心酸': 1, '酸葡': 1, '葡萄': 1, '萄不': 1, '不痛': 1, '痛快': 1, '快感': 1, '感覺': 1, '覺,': 1, '或許': 1, '許才': 1, '才是': 1, '是西': 1, '士倡': 1, '卻又': 1, '又羞': 1, '羞於': 1, '於啟': 1, '口之': 1, '之真': 1, '真正': 1, '正原': 1, '原因': 1, '因吧': 1, '吧!': 1})\n",
"--------------------------------------------------\n",
"bigramFreq02:\n",
"Counter()\n"
]
}
],
"source": [
"from collections import Counter\n",
"\n",
"bigramFreq01 = Counter(nElem(article, 2))\n",
"print('-'*50)\n",
"bigramFreq02 = Counter(nElem02(article, 2))\n",
"print('-'*50)\n",
"print(f\"bigramFreq01:\\n{bigramFreq01}\")\n",
"print('-'*50)\n",
"print(f\"bigramFreq02:\\n{bigramFreq02}\")"
]
},
{
"cell_type": "markdown",
"id": "b6841f0f",
"metadata": {},
"source": [
"#### 定義一個可以接受任意個數的論元的函式\n",
"\n",
"- 上面我們的小練習中有一個計算MLU的簡單程式。\n",
"- 但是,隨著我們收集到的utterances越多,就得重覆執行上面練習中的程式。\n",
"- 我們可以把這個計算MLU的程式寫成函式,並且允許其接受任意個數的論元。"
]
},
{
"cell_type": "code",
"execution_count": 74,
"id": "422dfa3c",
"metadata": {},
"outputs": [],
"source": [
"def mlu(*utterances):\n",
" '''\n",
" takes any number of lists of utterances\n",
" returns MLU (Mean Length of Utterance)\n",
" '''\n",
" mlu = 0\n",
" \n",
" for u in utterances:\n",
" mlu += len(u)\n",
" \n",
" return mlu/len(utterances)"
]
},
{
"cell_type": "code",
"execution_count": 77,
"id": "ba618da0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2.857142857142857"
]
},
"execution_count": 77,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mlu('daddy come'.split(), \n",
" 'baby eat'.split(), \n",
" 'baby play ball'.split(), \n",
" 'daday give hug'.split(), \n",
" 'babay give dady ball'.split(),\n",
" 'mommy drink coke'.split(),\n",
" 'mommy put cloth'.split()\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": 78,
"id": "9f2e42f5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2.8571\n"
]
}
],
"source": [
"mlu = mlu('daddy come'.split(), \n",
" 'baby eat'.split(), \n",
" 'baby play ball'.split(), \n",
" 'daday give hug'.split(), \n",
" 'babay give dady ball'.split(),\n",
" 'mommy drink coke'.split(),\n",
" 'mommy put cloth'.split()\n",
" )\n",
"\n",
"print(round(mlu, 4))"
]
},
{
"cell_type": "code",
"execution_count": 76,
"id": "22cd8f4e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"('a', 123, [5, 6, 7], (8, 9, 10))\n"
]
}
],
"source": [
"# 來看一下,*args 在Python中以什麼格式出現\n",
"\n",
"def func03(*args): print(args)\n",
" \n",
"func03('a', 123, [5,6,7], (8,9,10))"
]
},
{
"cell_type": "markdown",
"id": "699b2b91",
"metadata": {},
"source": [
"## 中文斷詞\n",
"\n",
"- 斷詞(tokenization或segmentation)是做中文處理的第一步,斷詞也是有相當複雜的任務。\n",
"- Python開源的中文斷詞程式庫 jieba,大概是最多人使用的中文斷詞程式庫了(可能是因為開源=免費?),不過,jieba主要是利用大陸的語料來訓練的,應用在繁體/正體中文,出錯機會大。\n",
"- 在githup上可以找到幾個利用繁體語料訓練的jieba,如:https://github.com/APCLab/jieba-tw\n",
" 1. 要安裝這個版本的jieba,要先安裝git:https://git-scm.com/downloads (下載適合你的版本並安裝)\n",
" 1. 再以:pip install git+https://github.com/APCLab/jieba-tw.git 來安裝這個版本的jieba\n",
"- 另外,建立漢語語料庫驅,中央研究院中文詞知識庫小組(簡稱:詞庫小組或CKIP),開發中文斷詞系統也有很長的歷史了,而且,正確率不錯。最近幾年,CKIP Tagger 也有Python的程式庫API了(https://github.com/ckiplab/ckiptagger):\n",
"- 要使用ckiptagger需要在你的虛擬環境中執行下面動作:\n",
" 1. pip install tensorflow\n",
" 1. pip install ckiptagger\n",
" 1. pip install gdown\n",
" 1. 進入你的Python直譯器,如Jupyter Notebook或打開Spyder\n",
" 1. 在Python Console執行:\n",
" 1. from ckiptagger import data_utils, construct_dictionary, WS, POS, NER\n",
" 1. data_utils.download_data_gdown(\"./\") \\[下載資料集,如詞類、斷詞原則什麼的\\]\n",
" - 註:因為我們使用jupyter notebook的方式,是把目錄指向你儲存你的程式的目錄下,故,使用這種方式下載ckiptagger的資料,會到你的工作目錄去。記得,把下載的 data.zip (壓縮檔) 複製到你安裝ckiptagger的虛擬環境的目錄去,比如,我的ckiptagger是在放ckiptagger這個虛擬環境中,就得把這個壓縮檔複製進\"C:\\\\Users\\\\Admin\\\\anaconda3\\\\envs\\\\ckiptagger\"這個目錄之下。\n",
" - 而且,如果要使用ckiptagger,就必須啟動這個虛擬環境。\n",
" 1. ws = WS(\"./data\")\n",
" 1. pos = POS(\"./data\")\n",
" 1. ner = NER(\"./data\")\n",
" - 註:在 ckiptagger的原始文件中,使用 ws = WS(\"./data\")來標示ckiptagger的資料庫內容的所在目錄(=工作目錄);但,我們使用 jupyter notebook 方式,工作目錄是我們儲存 .ipynb 的目錄,故,需要指定ckiptagger 的目錄,放在WS/POS/NER的論元中,也就是:ckiptagger_pth = \"C:\\\\Users\\\\Admin\\\\anaconda3\\\\envs\\\\ckiptagger\"\n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "de719cac",
"metadata": {},
"outputs": [],
"source": [
"from ckiptagger import WS\n",
"\n",
"ckiptagger_pth = \"C:\\\\Users\\\\Admin\\\\anaconda3\\\\envs\\\\ckiptagger\" #家裏筆電\n",
"ws = WS(f\"{ckiptagger_pth}/data\")\n",
"\n",
"sentence_list = [\n",
" \"傅達仁今將執行安樂死,卻突然爆出自己20年前遭緯來體育台封殺,他不懂自己哪裡得罪到電視台。\",\n",
" \"美國參議院針對今天總統布什所提名的勞工部長趙小蘭展開認可聽證會,預料她將會很順利通過參議院支持,成為該國有史以來第一位的華裔女性內閣成員。\",\n",
" \"\",\n",
" \"土地公有政策??還是土地婆有政策。.\",\n",
" \"… 你確定嗎… 不要再騙了……\",\n",
" \"最多容納59,000個人,或5.9萬人,再多就不行了.這是環評的結論.\",\n",
" \"科長說:1,坪數對人數為1:3。2,可以再增加。\",\n",
"]\n",
"\n",
"word_sentence_list = ws(sentence_list)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "b3f907f1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['傅達仁', '今', '將', '執行', '安樂死', ',', '卻', '突然', '爆出', '自己', '20', '年', '前', '遭', '緯來', '體育台', '封殺', ',', '他', '不', '懂', '自己', '哪裡', '得罪到', '電視台', '。']\n",
"['美國', '參議院', '針對', '今天', '總統', '布什', '所', '提名', '的', '勞工部長', '趙小蘭', '展開', '認可', '聽證會', ',', '預料', '她', '將', '會', '很', '順利', '通過', '參議院', '支持', ',', '成為', '該', '國', '有史以來', '第一', '位', '的', '華裔', '女性', '內閣', '成員', '。']\n",
"[]\n",
"['土地公', '有', '政策', '?', '?', '還是', '土地', '婆', '有', '政策', '。', '.']\n",
"['…', ' ', '你', '確定', '嗎', '…', ' ', '不要', '再', '騙', '了', '…', '…']\n",
"['最多', '容納', '59,000', '個', '人', ',', '或', '5.9萬', '人', ',', '再', '多', '就', '不行', '了', '.', '這', '是', '環評', '的', '結論', '.']\n",
"['科長', '說', ':1,', '坪數', '對', '人數', '為', '1:3', '。', '2', ',', '可以', '再', '增加', '。']\n"
]
}
],
"source": [
"for l in word_sentence_list:\n",
" print(l)"
]
},
{
"cell_type": "markdown",
"id": "0add7389",
"metadata": {},
"source": [
"## 正則表達式 (reqular expression)\n",
"\n",
"- 正則表達式本來是一種描述形式語言(formal language)的語法規則。\n",
"- 正則表達式所描述的語言稱為:正則語言 (regular language)。\n",
"- 正則語言定義如下:\n",
" 1. 字母集中的每一個字母,都是一個正則語言。\n",
" 1. 正則語言以前後相連(concantenation)、重覆零次或以上 (*)、重覆一次或以上(+)仍是正則語言。\n",
" 1. 正則語言以交集、聯集、補集運作後的結果,仍是正則語言。\n",
"- 假設我們有字母集如下 {a, b}:\n",
" 1. a及b都是正則語言\n",
" 1. a*、a+、b*、b+、a*b+、b+a+,等等,都是正則語言\n",
" 1. a*b* (= a*與b*的聯集) 是一個正則語言\n",
" 1. ....\n",
"- 上面的假設中,用來描述各個正則語言的語法規則就是正則表達式。\n",
"- 在CS的世界中,一般聽到正則表達式,立刻想到的是字串搜尋。\n",
"- 也就是說,正則表達式被用來標明要搜的字串類型,可以用簡單的表達式來搜尋相對複雜的字串。\n",
"- Python包含一個內建的模組 re,可以用來依正則表達式做字串的處理(不只是搜尋)。"
]
},
{
"cell_type": "markdown",
"id": "f4125efa",
"metadata": {},
"source": [
"## 正則表達式的特殊字元\n",
"\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"id": "928bbb43",
"metadata": {},
"source": [
"- 所以,我國的手機格式,可以用正則表達式寫為:'\\\\d{4}-\\\\d{6}' 或 r'\\d{4}-\\d{6}'\n",
"\n",
"- 格式:
\n",
"import re
\n",
"變數 = re.方法(正則表達式, 要在其間搜尋的字串 \\[,flags\\])\n",
"- 如果擔心特殊字元,可以在前兩個論元(皆為字串)前加上 r
\n",
"
\n",
"- flags有下面幾種:\n",
" 1. re.I 或 re.IGNORECASE 代表大小寫不分,都是搜尋的目標\n",
" 1. re.DOTALL 代表如果你想要找到的字串跨行也要找到,需要標示此:忽略換行符號 的旗標\n",
" 1. re.VERBOSE 允許你在論元位置標明正則表達式時,加上註解,讓正則表達式想找到對象能更清楚表示\n",
" 1. 旗標是可選擇的,也就是說,可以不用....\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 79,
"id": "8bc63f0b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 tem\n",
"2 None\n"
]
}
],
"source": [
"import re\n",
"\n",
"pattern = r'[a-zA-Z]+' #任何出現一次及以上的大小寫並全為字母的字元 \n",
"m = re.match(pattern, 'tem12po') \n",
"print(1, m.group()) # .group() 找出符合指定模式的字串\n",
"m2 = re.match(pattern, '123Jack00') # 要搜尋的字串第一個並非字母,搜尋停止,故傳回None\n",
"print(2, m2) # 沒找到,用.group()會有出現錯誤訊息"
]
},
{
"cell_type": "code",
"execution_count": 81,
"id": "5d6e4059",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"a. 12\n",
"b. 123\n",
"c. 1\n",
"d. 1\n",
"45Jack\n",
"你好03\n",
"e. 45Jack\n",
"f. 45\n",
"g. 45\n"
]
}
],
"source": [
"#import re\n",
"\n",
"pattern = r'[0-9]+'\n",
"pattern2 = '[0-9].+'\n",
"pattern3 = '[0-9][0-9+]'\n",
"\n",
"m3 = re.search(pattern, 'tem12po')\n",
"m4 = re.search(pattern, '123Jack00')\n",
"\n",
"str5 = '''1\n",
"45Jack\n",
"你好03'''\n",
"\n",
"m5 = re.search(pattern, str5)\n",
"m6 = re.search(pattern2, str5, re.DOTALL) # 要找一個數字其後跟著一個以上的任何字元,下了 re.DOTALL之後,可以換行\n",
"m61 = re.search(pattern2, str5) # 這是pattern2,數字後有接任何字元,因為沒有re.DOTALL,故第一行的1不算\n",
"m7 = re.search(pattern3, str5, re.DOTALL) \n",
"m8 = re.search(pattern3, str5)\n",
"\n",
"print('a.', m3.group())\n",
"print('b.', m4.group())\n",
"print('c.', m5.group())\n",
"print('d.', m6.group())\n",
"print('e.', m61.group())\n",
"print('f.', m7.group())\n",
"print(f\"g. {m8.group()}\")"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "51dc871b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"找到的例子有:6句\n",
"\n",
"的\t科學家\t和\t專家\t組成\t的\t獨立\t疫苗\t優先\t次序\t諮詢\t小組\t挑選\t,\t目前\t除了\t高端\t新冠肺炎\t疫苗\t以及\tInovio\t公司\t的\tDNA\t疫苗\t以外\t,\t預計\t還\t會\t有\t兩項\t候選\t疫苗\t在\t完成\n",
"\n",
"\t、\t藥局\t未\t落實\t疫苗\t的\t管理\t,\t以至於\t拿錯\t疫苗\t,\t第二\t、\t院\t方\t未\t另\t訂\t新冠肺炎\t疫苗\t的\t標準\t作業流程\t,\t第三\t、\t工作\t人員\t在\t抽取\t疫苗\t時\t未\t落實\t「\t3讀\t5對\t」\t,\n",
"\n",
"邱男\t租屋處\t收租\t時\t,\t發現\t邱男\t電話\t不通\t,\t突\t想起\t1日\t時\t邱男\t曾\t提及\t打\t新冠肺炎\t疫苗\t身體\t不適\t,\t因此\t立刻\t打開\t房門\t,\t卻\t發現\t邱男\t躺\t在\t床\t上\t失去\t呼吸\t心跳\t;\t\n",
"\n",
",\t針對\t50\t歲\t以上\t的\t民眾\t都\t可以\t前來\t施打\t,\t那\t因為\t最近\t都\t還有\t在\t打\t新冠肺炎\t的\t疫苗\t,\t所以\t,\t針對\t衛福部\t公告\t的\t指示\t,\t只\t要\t兩個\t疫苗\t的\t間隔\t超過\t七天\t就\t可以\n",
"\n",
"國祐\t指出\t,\t汐止區\t有\t31間\t的\t合約醫療\t院\t所\t可以\t提供\t流\t感疫苗\t的\t施打\t,\t新冠肺炎\t疫苗\t也\t有\t20幾間\t,\t目前\t汐止\t衛生\t所有\t跟\t醫院\t跟\t診所\t合作\t,\t總共\t在\t31個\t地方\n",
"\n",
"\t,\t合法\t居留\t或\t停留\t但\t無\t健\t保身\t分\t的\t外籍\t人士\t,\t仍\t可\t比照\t國人\t接種\t新冠肺炎\t疫苗\t,\t只\t要\t備\t妥\t有效\t護照\t正\t、\t影\t本\t向\t移民署\t各\t縣市\t服務\t站\t申請\t「\t中華民國\n",
"\n"
]
}
],
"source": [
"# 使用 re 做文本內容蒐尋\n",
"\n",
"import os\n",
"import re\n",
"\n",
"curr_pth = os.getcwd()\n",
"\n",
"with open(f\"{curr_pth}/data/2MNewsDataSegmented.txt\", 'r', encoding='utf8') as f:\n",
" texts = f.read()\n",
" \n",
"front = \".\"*50\n",
"back = \".\"*50\n",
"kw = \"肺炎.{0,5}疫苗\"\n",
"\n",
"pattern = f\"{front}{kw}{back}\"\n",
"\n",
"res = re.findall(pattern, texts)\n",
"\n",
"print(f\"找到的例子有:{len(res)}句\")\n",
"print()\n",
"\n",
"for entry in res:\n",
" print(entry)\n",
" print()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "cef90b18",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"5\n"
]
}
],
"source": [
"front = \".\"*50\n",
"back = \".\"*50\n",
"kw = \"肺炎.疫苗\"\n",
"\n",
"pattern = f\"{front}{kw}{back}\"\n",
"\n",
"res = re.findall(pattern, texts)\n",
"print(len(res))\n",
"\n",
"# 跟上面的比,少了第二個例子:新冠肺炎 的 疫苗"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "e813d798",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2\n",
"\n",
"李姓\t男子\t去年\t11月底\t搭\t友人便車\t行經\t新竹市\t東門\t圓環\t內側\t,\t與\t外側\t車道\t一輛\t機車\t發生\t車禍\t,\t導致\t機車\t騎士\t全身\t擦\t挫傷\t,\t後座\t載乘\t的\t孩童\t也\t顱骨\t骨折\t合併\t小\t腦冪腦疝\n",
"\n",
"\t15\t歲\t盧姓少年\t是\t高職同學\t,\t2019年\t間\t,\t沒有\t駕照\t的\t盧\t少\t騎乘\t張男\t的\t機車\t,\t載著\t張男\t上\t路\t,\t與\t陳姓\t騎士\t發生\t車禍\t,\t陳\t某\t不僅\t受傷\t還\t骨折\t,\t先\t與\t盧\t少\t及\t其\t家長\t和解\t獲賠\t25萬元\t後\t,\t\n",
"\n"
]
}
],
"source": [
"front = \".\"*50\n",
"back = \".\"*50\n",
"kw = \"機車.{0,30}車禍\"\n",
"\n",
"pattern = f\"{front}{kw}{back}\"\n",
"\n",
"res = re.findall(pattern, texts)\n",
"print(len(res))\n",
"print()\n",
"for entry in res:\n",
" print(entry)\n",
" print()"
]
},
{
"cell_type": "markdown",
"id": "94221671",
"metadata": {},
"source": [
"### 文件(情感/分類)分析步驟\n",
"\n",
"1. 蒐集文本\n",
"1. 將文本斷詞\n",
"1. 將文本數據化,可使用Bag of Words (BOW)、TF-IDF、Word2Vec等。\n",
"1. 將文本加註標籤\n",
"1. 將文本拆為訓練集及測試集(有更精細的拆分方法)\n",
"1. 將訓練集送入演算法中訓練\n",
"1. 使用測試集做正確率的測驗"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "284769ba",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"正面評語共有:1546\n",
"負面評語共有:1477\n"
]
}
],
"source": [
"# 網路評語情感分析\n",
"\n",
"#import os\n",
"#curr_pth = os.getcwd()\n",
"\n",
"# 原來的檔案是 list of lists of tokens\n",
"# 先組合成 list of tokens\n",
"\n",
"with open(f\"{curr_pth}/data/posCommentsTokensList.txt\", 'r', encoding='utf8') as f:\n",
" ListsTokens = eval(f.read())\n",
" \n",
"posTokens = []\n",
"for l in ListsTokens:\n",
" posTokens.append(' '.join(l))\n",
" \n",
"print(f\"正面評語共有:{len(posTokens)}\")\n",
"\n",
"with open(f\"{curr_pth}/data/negCommentsTokensList.txt\", 'r', encoding='utf8') as f:\n",
" ListsTokens = eval(f.read())\n",
" \n",
"negTokens=[]\n",
"for l in ListsTokens:\n",
" negTokens.append(' '.join(l))\n",
" \n",
"print(f\"負面評語共有:{len(negTokens)}\")"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "7145cb9b",
"metadata": {},
"outputs": [],
"source": [
"# 建立 BOW\n",
"from sklearn.feature_extraction.text import CountVectorizer\n",
"\n",
"# 先把斷好詞的文本,依原來順序合併成一個表列\n",
"\n",
"allTexts = posTokens + negTokens\n",
"\n",
"BOW = CountVectorizer().fit_transform(allTexts)\n",
"BOW = BOW.toarray()"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "f18750d2",
"metadata": {},
"outputs": [],
"source": [
"# 依評論順序加入正面、負面標籤,1=正面,0=負面\n",
"\n",
"labels = [1]*1546 + [0]*1477"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "9d6c8bc7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"accuracy:0.8628099173553719\n"
]
}
],
"source": [
"from sklearn.model_selection import train_test_split\n",
"from sklearn.naive_bayes import MultinomialNB \n",
"from sklearn.metrics import accuracy_score\n",
"\n",
"# 將語料分為訓練集、測試集:X 為斷好詞的評語\n",
"# y 為情感標籤,測試集的大約為所有文本篇數的 0.2 \n",
"X_train, X_test, y_train, y_test = train_test_split(BOW, labels, test_size=0.2)\n",
"\n",
"nb = MultinomialNB()\n",
"\n",
"# .fit() 訓練模型\n",
"model = nb.fit(X_train, y_train)\n",
"\n",
"# .predict()對測試集(或新語料)做預測\n",
"y_pred = model.predict(X_test)\n",
"\n",
"print(f\"accuracy:{accuracy_score(y_test, y_pred)}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "db5191d3",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}