python 資料集 包含 子集
在我們拿到一些資料集的時候經常會把其分為好幾份,乙份拿來訓練,乙份拿來測試,最後驗證等等;當遇到兩個文字記憶體有資料,我們需要判斷其是否是另外乙個文字的子集…
#!usr/bin/python
# -*- coding: utf-8 -*-
import time
defto_print_entity()
: fopen_15k=
open
("data/fb15k_entity2id.txt"
,"r"
)#讀取檔案
line_15k=fopen_15k.readlines(
)#序列化
count_15k=
len(line_15k)
i_15k=
0 temp_15k=
while i_15k < count_15k:
#把序列裡每乙個元素都用空格符分割
.split(
"\t"))
i_15k=i_15k+
1 j_15k=
0 line_temp_15k=
while j_15k < count_15k:[0
])#分割後只在序列裡每乙個元素獲取第乙個字元,後面的id不要了
j_15k=j_15k+
1 fopen_237=
open
("data/fb237_entity2id.txt"
,"r"
) line_237=fopen_237.readlines(
) count_237=
len(line_237)
i_237=
0 temp_237=
while i_237 < count_237:
.split(
"\t"))
i_237=i_237+
1 j_237=
0 line_temp_237=
while j_237 < count_237:[0
])j_237=j_237+
1 not_count_15k=
0 not_count_237=
0for i in
range(0
,len
(line_temp_15k)):
#判斷在fb15k裡的實體在fb237裡是否也存在
if line_temp_15k[i]
notin line_temp_237:
#print("fb15k有fb237沒有,「位置",i,"值",line_temp_15k[i])
not_count_237=not_count_237+
1for i in
range(0
,len
(line_temp_237)):
if line_temp_237[i]
notin line_temp_15k:
#print("fb237有fb15k沒有,「位置",i,"值",line_temp_237[i])
not_count_15k = not_count_15k +
1print
("在fb15k有,在fb237沒有的實體,共有"
,not_count_237,
"條")
print
("在fb237有,在fb15k沒有的實體,共有"
,not_count_15k,
"條")
defto_print_relation()
: fopen_15k_rel=
open
("data/fb15k_relation2id.txt"
,"r"
)#讀取檔案
line_15k_rel=fopen_15k_rel.readlines(
)#序列化
count_15k_rel=
len(line_15k_rel)
i_15k_rel=
0 temp_15k_rel=
while i_15k_rel < count_15k_rel:
#把序列裡每乙個元素都用空格符分割
.split(
"\t"))
i_15k_rel=i_15k_rel+
1 j_15k_rel=
0 line_temp_15k_rel=
while j_15k_rel < count_15k_rel:[0
])#分割後只在序列裡每乙個元素獲取第乙個字元,後面的id不要了
j_15k_rel=j_15k_rel+
1 fopen_237_rel=
open
("data/fb237_relation2id.txt"
,"r"
) line_237_rel=fopen_237_rel.readlines(
) count_237_rel=
len(line_237_rel)
i_237_rel=
0 temp_237_rel=
while i_237_rel < count_237_rel:
.split(
"\t"))
i_237_rel=i_237_rel+
1 j_237_rel=
0 line_temp_237_rel=
while j_237_rel < count_237_rel:[0
])j_237_rel=j_237_rel+
1 not_count_15k_rel=
0 not_count_237_rel=
0for i in
range(0
,len
(line_temp_15k_rel)):
#判斷在fb15k裡的實體在fb237裡是否也存在
if line_temp_15k_rel[i]
notin line_temp_237_rel:
#print("fb15k有fb237沒有,「位置",i,"值",line_temp_15k[i])
not_count_237_rel=not_count_237_rel+
1for i in
range(0
,len
(line_temp_237_rel)):
if line_temp_237_rel[i]
notin line_temp_15k_rel:
print
("fb237有fb15k沒有,「位置"
,i,"值"
,line_temp_237[i]
) not_count_15k_rel = not_count_15k_rel +
1print
("在fb15k有,在fb237沒有的關係,共有"
,not_count_237_rel,
"條")
print
("在fb237有,在fb15k沒有的關係,共有"
,not_count_15k_rel,
"條")
ticks_1 = time.time(
)to_print_entity(
)to_print_relation(
)ticks_2 = time.time(
)print
("花費了:"
,ticks_2-ticks_1,
"秒!"
)
github提供的資料集
[1]:
判斷兩個陣列是否 相等
判斷前後 兩次 獲得的位置是否相同,是不是同一位置。1.如果相同,返回return 不執行 下面的 操作 2.如果有 不同,哪怕只有乙個,break,執行下面的操作 m uileftarray 上一次的位置 uileftarray 獲得的新的位置 原程式 寫的妙 啊 if m ucfirenum u...
判斷兩個陣列是否相等
陣列屬於引用資料型別,其值儲存在堆中,因此我們無法簡單的用 對其進行判斷,但可以使用類似於深拷貝的方法將其像剝洋蔥一樣撥開,逐個判斷 下面是本人自己寫的一套演算法 function arrayequal arr1,arr2 function ifequal obj1,obj2 var pretype...
判斷兩個陣列是否相同 16
案例需求 定義乙個方法,用於比較兩個陣列的內容是否相同和不相同。int arr1 int arr2 分析a 定義2個陣列。b 定義乙個方法封裝判斷陣列內容是否相同的功能,所以這個方法就應該接受2個陣列。這個方法最好給它乙個返回值,認為相同返回true,反之返回false.c.呼叫方法傳入陣列,得到比...