Spaces:
Sleeping
Sleeping
Update model to cl-nagoya-sup-simcse-ja-nss-v1_0_8_4, add new standard name mapping functionality in prediction process, and enhance data loading in sentence transformer service.
Browse files- config.py +1 -1
- data/abstractMapData.csv +3 -0
- data/nameMapData.csv +6 -6
- data/{sampleData.csv → old/sampleData.csv} +0 -0
- data/{sampleDataInput.csv → old/sampleDataInput.csv} +0 -0
- data/outputData.csv +0 -0
- data/standardNameMapData.csv +0 -0
- data/subSubjectAndNameMapData.csv +7 -4
- data/unitMapData.csv +41 -40
- routes/predict.py +14 -1
- services/sentence_transformer_service.py +9 -0
config.py
CHANGED
@@ -24,7 +24,7 @@ NAME_ABSTRACT_MAP_DATA_FILE = os.path.join(DATA_DIR, "nameAbstractData.csv")
|
|
24 |
HALF = "float16"
|
25 |
MODEL_TYPE = None
|
26 |
DEVICE_TYPE = "cpu"
|
27 |
-
MODEL_NAME = "Detomo/cl-nagoya-sup-simcse-ja-nss-
|
28 |
if HALF == "float16":
|
29 |
SENTENCE_EMBEDDING_FILE = os.path.join(
|
30 |
DATA_DIR,
|
|
|
24 |
HALF = "float16"
|
25 |
MODEL_TYPE = None
|
26 |
DEVICE_TYPE = "cpu"
|
27 |
+
MODEL_NAME = "Detomo/cl-nagoya-sup-simcse-ja-nss-v1_0_8_4"
|
28 |
if HALF == "float16":
|
29 |
SENTENCE_EMBEDDING_FILE = os.path.join(
|
30 |
DATA_DIR,
|
data/abstractMapData.csv
CHANGED
@@ -485,3 +485,6 @@
|
|
485 |
附属棟,埋戻し,総堀り,総堀り,2
|
486 |
附属棟,埋戻し,桝・溝堀り,桝・溝堀り,2
|
487 |
防水,防水,シート防水,シート防水,9
|
|
|
|
|
|
|
|
485 |
附属棟,埋戻し,総堀り,総堀り,2
|
486 |
附属棟,埋戻し,桝・溝堀り,桝・溝堀り,2
|
487 |
防水,防水,シート防水,シート防水,9
|
488 |
+
直接仮設,災害防止,小幅ネット,小幅ネット,2
|
489 |
+
直接仮設,災害防止,防音シート,防音シート,2
|
490 |
+
直接仮設,災害防止,養生シート,養生シート,2
|
data/nameMapData.csv
CHANGED
@@ -4876,7 +4876,7 @@
|
|
4876 |
直接仮設,遣方,遣方,必要,確定,,,,
|
4877 |
直接仮設,固定仮設間仕切り壁,固定仮設間仕切り壁,必要,確定,,,,
|
4878 |
直接仮設,交通誘導員,ガードマン,不要,確定,,,,
|
4879 |
-
|
4880 |
直接仮設,小幅ネット張り,小幅ネット張り,必要,確定,,,,
|
4881 |
直接仮設,成形鋼板,成形鋼板,必要,確定,,,,
|
4882 |
直接仮設,整理・清掃・後片付け,清掃・片付け,必要,未確定,整理清掃後片付け,,,
|
@@ -4954,7 +4954,7 @@
|
|
4954 |
鉄筋,PC緊張技術管理費,PC緊張技術管理費,必要,確定,,,,
|
4955 |
鉄筋,PC緊張材料費,PC緊張材料費,不要,確定,,,,
|
4956 |
鉄筋,PC緊張労務費,PC緊張労務費,不要,確定,,,,
|
4957 |
-
鉄筋,RC
|
4958 |
鉄筋,アスファルト防水撤去,撤去,不要,確定,,,,
|
4959 |
鉄筋,アルミパネル撤去,撤去,不要,確定,,,,
|
4960 |
鉄筋,アルミ防音パネル張り,防音パネル張り,必要,確定,,,,
|
@@ -4980,7 +4980,7 @@
|
|
4980 |
鉄筋,スパイラルフープ,スパイラルフープ,必要,確定,,,,
|
4981 |
鉄筋,スパイラル鉄筋,スパイラル鉄筋,必要,確定,,,,
|
4982 |
鉄筋,スライディングウォール撤去,撤去,不要,確定,,,,
|
4983 |
-
鉄筋,スリーブ補強RC・SRC
|
4984 |
鉄筋,スリーブ補強筋,スリーブ補強,必要,確定,,,,
|
4985 |
鉄筋,セーバー撤去,撤去,不要,確定,,,,
|
4986 |
鉄筋,ソフト巾木撤去,撤去,不要,確定,,,,
|
@@ -5153,8 +5153,8 @@
|
|
5153 |
鉄筋,梁貫通孔補強既製品,梁貫通孔補強既製品,必要,確定,,,,
|
5154 |
鉄筋,梁貫通孔補強既製品設置手間,梁貫通孔補強既製品設置手間,必要,確定,,,,
|
5155 |
鉄筋,梁貫通孔補強鉄筋加工組立,梁貫通孔補強鉄筋加工組立,必要,確定,,,,
|
5156 |
-
|
5157 |
-
|
5158 |
鉄筋,枠組本足場,枠組本足場,必要,確定,,,,
|
5159 |
鉄骨,ALC板取付金物部半湿式ロックウール吹付,吹付耐火被覆,必要,確定,,,,
|
5160 |
鉄骨,ECP・ALC下地,ECP・ALC下地,不要,確定,,,,
|
@@ -7100,7 +7100,7 @@
|
|
7100 |
附属棟,庇金網,庇金網,不要,確定,,,,
|
7101 |
附属棟,庇竪樋,庇竪樋,必要,確定,,,,
|
7102 |
附属棟,庇鉄骨,庇鉄骨,必要,確定,,,,
|
7103 |
-
|
7104 |
附属棟,扉(SD),鋼製建具,必要,確定,,,,
|
7105 |
附属棟,標識,サイン,不要,確定,,,,
|
7106 |
附属棟,敷鉄板,敷鉄板,不要,確定,,,,
|
|
|
4876 |
直接仮設,遣方,遣方,必要,確定,,,,
|
4877 |
直接仮設,固定仮設間仕切り壁,固定仮設間仕切り壁,必要,確定,,,,
|
4878 |
直接仮設,交通誘導員,ガードマン,不要,確定,,,,
|
4879 |
+
直接仮設,災害防止,災害防止,必要,未設定,災害防止,,,
|
4880 |
直接仮設,小幅ネット張り,小幅ネット張り,必要,確定,,,,
|
4881 |
直接仮設,成形鋼板,成形鋼板,必要,確定,,,,
|
4882 |
直接仮設,整理・清掃・後片付け,清掃・片付け,必要,未確定,整理清掃後片付け,,,
|
|
|
4954 |
鉄筋,PC緊張技術管理費,PC緊張技術管理費,必要,確定,,,,
|
4955 |
鉄筋,PC緊張材料費,PC緊張材料費,不要,確定,,,,
|
4956 |
鉄筋,PC緊張労務費,PC緊張労務費,不要,確定,,,,
|
4957 |
+
鉄筋,RC梁貫通孔補強,梁貫通孔補強,必要,確定,,,,
|
4958 |
鉄筋,アスファルト防水撤去,撤去,不要,確定,,,,
|
4959 |
鉄筋,アルミパネル撤去,撤去,不要,確定,,,,
|
4960 |
鉄筋,アルミ防音パネル張り,防音パネル張り,必要,確定,,,,
|
|
|
4980 |
鉄筋,スパイラルフープ,スパイラルフープ,必要,確定,,,,
|
4981 |
鉄筋,スパイラル鉄筋,スパイラル鉄筋,必要,確定,,,,
|
4982 |
鉄筋,スライディングウォール撤去,撤去,不要,確定,,,,
|
4983 |
+
鉄筋,スリーブ補強RC・SRC共通,梁貫通孔補強,必要,確定,,,,
|
4984 |
鉄筋,スリーブ補強筋,スリーブ補強,必要,確定,,,,
|
4985 |
鉄筋,セーバー撤去,撤去,不要,確定,,,,
|
4986 |
鉄筋,ソフト巾木撤去,撤去,不要,確定,,,,
|
|
|
5153 |
鉄筋,梁貫通孔補強既製品,梁貫通孔補強既製品,必要,確定,,,,
|
5154 |
鉄筋,梁貫通孔補強既製品設置手間,梁貫通孔補強既製品設置手間,必要,確定,,,,
|
5155 |
鉄筋,梁貫通孔補強鉄筋加工組立,梁貫通孔補強鉄筋加工組立,必要,確定,,,,
|
5156 |
+
鉄筋,梁貫通補強,梁貫通孔補強,必要,確定,,,,
|
5157 |
+
鉄筋,梁貫通補強金物,梁貫通孔補強,必要,確定,,,,
|
5158 |
鉄筋,枠組本足場,枠組本足場,必要,確定,,,,
|
5159 |
鉄骨,ALC板取付金物部半湿式ロックウール吹付,吹付耐火被覆,必要,確定,,,,
|
5160 |
鉄骨,ECP・ALC下地,ECP・ALC下地,不要,確定,,,,
|
|
|
7100 |
附属棟,庇金網,庇金網,不要,確定,,,,
|
7101 |
附属棟,庇竪樋,庇竪樋,必要,確定,,,,
|
7102 |
附属棟,庇鉄骨,庇鉄骨,必要,確定,,,,
|
7103 |
+
附属棟,庇鉄骨建方,庇鉄骨建方,必要,確定,,,,
|
7104 |
附属棟,扉(SD),鋼製建具,必要,確定,,,,
|
7105 |
附属棟,標識,サイン,不要,確定,,,,
|
7106 |
附属棟,敷鉄板,敷鉄板,不要,確定,,,,
|
data/{sampleData.csv → old/sampleData.csv}
RENAMED
File without changes
|
data/{sampleDataInput.csv → old/sampleDataInput.csv}
RENAMED
File without changes
|
data/outputData.csv
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
data/standardNameMapData.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/subSubjectAndNameMapData.csv
CHANGED
@@ -1,11 +1,14 @@
|
|
1 |
標準科目,入力_項目名,標準中科目,出力_項目名
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
|
|
|
|
6 |
建具,ガラスドア,ガラスドア(内部),内部 鋼製建具
|
7 |
建具,ガラスドア,ガラスドア(外部),外部 鋼製建具
|
8 |
建具,ガラスドア,ガラス(内部),内部 ガラス
|
9 |
建具,ガラスドア,ガラス(外部),外部 ガラス
|
|
|
10 |
建具,ガラリ,アルミニウム製建具(外部),内部 アルミニウム製建具
|
11 |
建具,ガラリ,アルミニウム製建具(内部),外部 アルミニウム製建具
|
|
|
1 |
標準科目,入力_項目名,標準中科目,出力_項目名
|
2 |
+
地業,工事費,既製コンクリート杭,既製杭工事費
|
3 |
+
地業,杭頭処理,既製コンクリート杭,既製杭頭処理
|
4 |
+
地業,杭施工費,現場打ちコンクリート杭,場所打ち杭施工本数
|
5 |
+
地業,施工費,現場打ちコンクリート杭,場所打ち杭施工本数
|
6 |
+
地業,杭頭処理,現場打ちコンクリート杭,現場打ち杭頭処理
|
7 |
+
地業,試験杭施工費,現場打ちコンクリート杭,場所打ち杭施工本数
|
8 |
建具,ガラスドア,ガラスドア(内部),内部 鋼製建具
|
9 |
建具,ガラスドア,ガラスドア(外部),外部 鋼製建具
|
10 |
建具,ガラスドア,ガラス(内部),内部 ガラス
|
11 |
建具,ガラスドア,ガラス(外部),外部 ガラス
|
12 |
+
建具,ガラス,パーティション(内部),外部 ガラス
|
13 |
建具,ガラリ,アルミニウム製建具(外部),内部 アルミニウム製建具
|
14 |
建具,ガラリ,アルミニウム製建具(内部),外部 アルミニウム製建具
|
data/unitMapData.csv
CHANGED
@@ -1,58 +1,59 @@
|
|
1 |
基準単位,標準単位,集計用単位
|
2 |
m,m,m
|
3 |
-
|
4 |
人日,人日,人日
|
5 |
-
|
6 |
m3,m3,m3
|
7 |
m2,m2,m2
|
8 |
-
|
9 |
t,t,t
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
kg,kg,
|
15 |
-
|
16 |
-
|
17 |
トン,t,t
|
18 |
%,%,%
|
19 |
-
|
20 |
-
|
21 |
日,日,日
|
22 |
人,人,人
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
L,L,L
|
30 |
-
|
31 |
利権者,人,人
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
月,月,月
|
36 |
-
|
37 |
-
|
38 |
-
脚,脚,か所・個・回・本・式
|
39 |
台月,台日,台日
|
40 |
m,m,m
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
POT,POT
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
基日,基日,基日
|
53 |
-
|
54 |
台日,台日,台日
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
F,F,F
|
|
|
|
|
|
1 |
基準単位,標準単位,集計用単位
|
2 |
m,m,m
|
3 |
+
か所,か所,か所
|
4 |
人日,人日,人日
|
5 |
+
式,式,式
|
6 |
m3,m3,m3
|
7 |
m2,m2,m2
|
8 |
+
往復,往復,往復
|
9 |
t,t,t
|
10 |
+
個,個,個
|
11 |
+
組,組,組
|
12 |
+
枚,枚,枚
|
13 |
+
本,本,本
|
14 |
+
kg,kg,t
|
15 |
+
台,台,台
|
16 |
+
回,回,回
|
17 |
トン,t,t
|
18 |
%,%,%
|
19 |
+
面,面,面
|
20 |
+
基,基,基
|
21 |
日,日,日
|
22 |
人,人,人
|
23 |
+
検体,体,体
|
24 |
+
株,株,株
|
25 |
+
セット,セット,セット
|
26 |
+
室,室,室
|
27 |
+
箇所,か所,か所
|
28 |
+
帖,帖,帖
|
29 |
L,L,L
|
30 |
+
業務,業務,業務
|
31 |
利権者,人,人
|
32 |
+
棟,棟,棟
|
33 |
+
部,部,部
|
34 |
+
点,点,点
|
35 |
月,月,月
|
36 |
+
1工事,工事,工事
|
37 |
+
脚,脚,脚
|
|
|
38 |
台月,台日,台日
|
39 |
m,m,m
|
40 |
+
一式,一式,一式
|
41 |
+
ユニット,ユニット,ユニット
|
42 |
+
張,張,張
|
43 |
+
POT,POT,POT
|
44 |
+
軒,軒,軒
|
45 |
+
鉢,鉢,鉢
|
46 |
+
畳,畳,畳
|
47 |
+
件,件,件
|
48 |
+
対,対,対
|
49 |
+
鉄本,体,体
|
50 |
+
鉄,鉄,鉄
|
51 |
基日,基日,基日
|
52 |
+
人月,人月,人日
|
53 |
台日,台日,台日
|
54 |
+
箱,箱,箱
|
55 |
+
巻,巻,巻
|
56 |
+
型,型,型
|
57 |
F,F,F
|
58 |
+
建新pot,POT,POT
|
59 |
+
1個,個,個
|
routes/predict.py
CHANGED
@@ -21,6 +21,7 @@ from mapping_lib.sub_subject_and_name_data_mapper import SubSubjectAndNameDataMa
|
|
21 |
from mapping_lib.abstract_similarity_mapper import AbstractSimilarityMapper
|
22 |
from mapping_lib.name_and_abstract_mapper import NameAndAbstractDataMapper
|
23 |
from mapping_lib.unit_mapper import UnitMapper
|
|
|
24 |
|
25 |
from config import UPLOAD_DIR, OUTPUT_DIR
|
26 |
from models import (
|
@@ -236,6 +237,18 @@ async def predict(
|
|
236 |
print(f"Error processing UnitMapper: {e}")
|
237 |
raise HTTPException(status_code=500, detail=str(e))
|
238 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
239 |
# Create output columns and ensure they have proper values
|
240 |
# Add ID column if not exists
|
241 |
if "ID" not in df_output_data.columns:
|
@@ -288,7 +301,7 @@ async def predict(
|
|
288 |
# 出力_標準単位 mapping - use unit mapper result
|
289 |
if "出力_標準単位" in df_output_data.columns:
|
290 |
df_output_data["出力_標準単位"] = df_output_data["出力_標準単位"]
|
291 |
-
|
292 |
# 出力_集計用単位 mapping - use unit mapper result
|
293 |
if "出力_集計用単位" in df_output_data.columns:
|
294 |
df_output_data["出力_集計用単位"] = df_output_data["出力_集計用単位"]
|
|
|
21 |
from mapping_lib.abstract_similarity_mapper import AbstractSimilarityMapper
|
22 |
from mapping_lib.name_and_abstract_mapper import NameAndAbstractDataMapper
|
23 |
from mapping_lib.unit_mapper import UnitMapper
|
24 |
+
from mapping_lib.standard_name_mapper import StandardNameMapper
|
25 |
|
26 |
from config import UPLOAD_DIR, OUTPUT_DIR
|
27 |
from models import (
|
|
|
237 |
print(f"Error processing UnitMapper: {e}")
|
238 |
raise HTTPException(status_code=500, detail=str(e))
|
239 |
|
240 |
+
try:
|
241 |
+
# Standard name mapping
|
242 |
+
if sentence_service.df_standard_name_map_data is not None:
|
243 |
+
standard_name_mapper = StandardNameMapper(
|
244 |
+
df_map_data=sentence_service.df_standard_name_map_data
|
245 |
+
)
|
246 |
+
df_output_data = standard_name_mapper.map_data(df_output_data)
|
247 |
+
|
248 |
+
except Exception as e:
|
249 |
+
print(f"Error processing StandardNameMapper: {e}")
|
250 |
+
raise HTTPException(status_code=500, detail=str(e))
|
251 |
+
|
252 |
# Create output columns and ensure they have proper values
|
253 |
# Add ID column if not exists
|
254 |
if "ID" not in df_output_data.columns:
|
|
|
301 |
# 出力_標準単位 mapping - use unit mapper result
|
302 |
if "出力_標準単位" in df_output_data.columns:
|
303 |
df_output_data["出力_標準単位"] = df_output_data["出力_標準単位"]
|
304 |
+
|
305 |
# 出力_集計用単位 mapping - use unit mapper result
|
306 |
if "出力_集計用単位" in df_output_data.columns:
|
307 |
df_output_data["出力_集計用単位"] = df_output_data["出力_集計用単位"]
|
services/sentence_transformer_service.py
CHANGED
@@ -134,6 +134,7 @@ class SentenceTransformerService:
|
|
134 |
self.df_abstract_map_data = None
|
135 |
self.df_name_and_subject_map_data = None
|
136 |
self.df_sub_subject_and_name_map_data = None
|
|
|
137 |
|
138 |
def load_model_data(self):
|
139 |
"""Load model and data only once at startup"""
|
@@ -249,6 +250,14 @@ class SentenceTransformerService:
|
|
249 |
f"Loaded name and subject map data: {len(self.df_name_and_subject_map_data)} entries"
|
250 |
)
|
251 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
252 |
except Exception as e:
|
253 |
print(f"Error loading map data: {e}")
|
254 |
|
|
|
134 |
self.df_abstract_map_data = None
|
135 |
self.df_name_and_subject_map_data = None
|
136 |
self.df_sub_subject_and_name_map_data = None
|
137 |
+
self.df_standard_name_map_data = None
|
138 |
|
139 |
def load_model_data(self):
|
140 |
"""Load model and data only once at startup"""
|
|
|
250 |
f"Loaded name and subject map data: {len(self.df_name_and_subject_map_data)} entries"
|
251 |
)
|
252 |
|
253 |
+
# Load standard name map data
|
254 |
+
standard_name_map_file = os.path.join(DATA_DIR, "standardNameMapData.csv")
|
255 |
+
if os.path.exists(standard_name_map_file):
|
256 |
+
self.df_standard_name_map_data = pd.read_csv(standard_name_map_file)
|
257 |
+
print(
|
258 |
+
f"Loaded standard name map data: {len(self.df_standard_name_map_data)} entries"
|
259 |
+
)
|
260 |
+
|
261 |
except Exception as e:
|
262 |
print(f"Error loading map data: {e}")
|
263 |
|