vumichien commited on
Commit
ec235f7
·
1 Parent(s): 7fff61c

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 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-v1_0_8_3"
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,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
- 1,個,か所・個・回・本・式
37
- 1工事,工事,か所・個・回・本・式
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