協作閣

開源協作部落格

OpenSubtitles:Chinese Variations II

QIEs

Richard Lian / 2019-05-03 /


This is a continuation of my exploration of the subtitles that I’ve gathered. We’re going to look at Quadrasyllabic Idiomatic Expressions (QIEs) this time.

from collections import Counter
import pickle

from nltk import ngrams

This is my code for getting the QIEs found in the movie subtitles. Not complicated…

files = ('tm_subs.txt', 'mm_subs.txt')

for f in files:
    c = Counter()
    with open(f) as fp:
        text = fp.read()
        text = text.replace('\n', '')

    four_grams = ngrams(text, 4)
    for gram in four_grams:
        gram = "".join(gram)

        c.update([gram])

    output_file = f.split('.')[0] + '.pkl'
    with open(output_file, 'wb') as fp:
        pickle.dump(c, fp)
# I renamed the files afterwards...
with open('tm_four_grams.pkl', 'rb') as f1, open('mm_four_grams.pkl', 'rb') as f2:
    tm_grams = pickle.load(f1)
    mm_grams = pickle.load(f2)
# What could this mean?!???
for t, m in zip(tm_grams.most_common(100), mm_grams.most_common(100)):
    print(t, m)
('我不知道', 9988) ('我不知道', 10481)
('我們可以', 4364) ('你为什么', 4864)
('我知道你', 4328) ('我知道你', 4711)
('你為什麼', 3660) ('我们可以', 4208)
('怎麼回事', 3539) ('怎么回事', 3836)
('你知道我', 3201) ('你知道我', 3728)
('不知道我', 3126) ('为什么不', 3432)
('我們需要', 3105) ('不知道我', 3374)
('不知道你', 2954) ('什么意思', 3264)
('是我們的', 2865) ('不知道你', 3244)
('什麼意思', 2865) ('什么时候', 3129)
('我知道我', 2781) ('为什么要', 3043)
('知道我們', 2713) ('我们需要', 2923)
('為什麼不', 2622) ('我知道我', 2923)
('為什麼要', 2585) ('是我们的', 2744)
('我們必須', 2539) ('不好意思', 2484)
('什麼時候', 2399) ('我们必须', 2478)
('準備好了', 2382) ('如果我们', 2411)
('不好意思', 2346) ('知道我们', 2380)
('如果我們', 2304) ('准备好了', 2371)
('你知道嗎', 2289) ('你知道吗', 2342)
('我們不能', 2205) ('这是什么', 2249)
('我們現在', 2179) ('的意思是', 2206)
('對不起我', 2133) ('我们现在', 2166)
('這是我的', 2041) ('为什么你', 2148)
('發生什麼', 1974) ('我的意思', 2146)
('這是什麼', 1974) ('发生什么', 2132)
('我們應該', 1921) ('对不起我', 2109)
('那是什麼', 1900) ('我们不能', 2095)
('我們已經', 1892) ('为什么我', 2070)
('每個人都', 1886) ('什么我们', 2041)
('發生了什', 1830) ('怎么知道', 2021)
('我只是想', 1789) ('那是什么', 2016)
('什麼我們', 1763) ('生了什么', 2002)
('的意思是', 1759) ('发生了什', 1989)
('就是這樣', 1751) ('我很抱歉', 1940)
('我的意思', 1750) ('这是我的', 1926)
('的時候我', 1746) ('我们已经', 1897)
('怎麼知道', 1736) ('我只是想', 1876)
('我們一起', 1736) ('每个人都', 1847)
('我很抱歉', 1700) ('我需要你', 1804)
('告訴我你', 1693) ('我们应该', 1787)
('這就是我', 1656) ('就是这样', 1757)
('為什麼我', 1575) ('在说什么', 1744)
('我需要你', 1570) ('的时候我', 1740)
('為什麼你', 1567) ('告诉我你', 1714)
('所以我們', 1565) ('在干什么', 1691)
('我告訴你', 1559) ('这是一个', 1645)
('你沒事吧', 1516) ('你知道的', 1636)
('在說什麼', 1507) ('我们一起', 1627)
('在做什麼', 1489) ('是怎么回', 1604)
('不是我的', 1478) ('我的朋友', 1603)
('不知道他', 1467) ('这就是我', 1587)
('你知道的', 1454) ('也不知道', 1584)
('什麼東西', 1428) ('是什么意', 1582)
('做了什麼', 1421) ('不是我的', 1575)
('知道他們', 1419) ('离开这里', 1573)
('現在我們', 1415) ('在做什么', 1568)
('也不知道', 1411) ('我告诉你', 1564)
('是怎麼回', 1408) ('你不知道', 1559)
('你不知道', 1400) ('什么都不', 1546)
('生了什麼', 1397) ('都不知道', 1528)
('都不知道', 1389) ('不知道他', 1516)
('是什麼意', 1374) ('什么东西', 1509)
('我的朋友', 1369) ('什么都没', 1509)
('你看起來', 1354) ('我希望你', 1497)
('我覺得我', 1342) ('所以我们', 1490)
('什麼都不', 1341) ('知道他们', 1473)
('這是我們', 1339) ('现在我们', 1466)
('我希望你', 1337) ('从来没有', 1458)
('高興見到', 1337) ('如果你不', 1448)
('你還好嗎', 1328) ('做了什么', 1405)
('告訴他們', 1324) ('我觉得我', 1396)
('不敢相信', 1319) ('你说什么', 1394)
('是這樣的', 1319) ('你没事吧', 1381)
('是因為我', 1310) ('所有人都', 1373)
('從來沒有', 1310) ('不敢相信', 1370)
('告訴我們', 1290) ('我觉得你', 1355)
('因為我們', 1286) ('是这样的', 1351)
('什麼都沒', 1286) ('我为什么', 1349)
('你們兩個', 1283) ('没有什么', 1345)
('生什麼事', 1280) ('你看起来', 1336)
('如果你不', 1271) ('如果你想', 1322)
('我覺得你', 1253) ('了什么事', 1317)
('我以為你', 1251) ('你还好吗', 1312)
('我們沒有', 1230) ('了我知道', 1302)
('在幹什麼', 1230) ('这是我们', 1285)
('這是一個', 1227) ('你有没有', 1275)
('了我知道', 1226) ('了你知道', 1256)
('你說什麼', 1204) ('告诉我们', 1252)
('興見到你', 1202) ('告诉他们', 1252)
('打電話給', 1198) ('你有什么', 1251)
('很高興見', 1194) ('了我们的', 1242)
('這是你的', 1194) ('你他妈的', 1241)
('永遠不會', 1193) ('们为什么', 1239)
('了我們的', 1191) ('知道什么', 1228)
('我知道這', 1188) ('因为我们', 1226)
('我們知道', 1182) ('生什么事', 1218)
('我不喜歡', 1157) ('你怎么知', 1215)
('我們不是', 1157) ('你是不是', 1212)