batchalign 0.8.2__tar.gz → 0.8.2.post1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. {batchalign-0.8.2/batchalign.egg-info → batchalign-0.8.2.post1}/PKG-INFO +1 -1
  2. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/analysis/compare.py +19 -0
  3. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/version +1 -1
  4. {batchalign-0.8.2 → batchalign-0.8.2.post1/batchalign.egg-info}/PKG-INFO +1 -1
  5. {batchalign-0.8.2 → batchalign-0.8.2.post1}/LICENSE +0 -0
  6. {batchalign-0.8.2 → batchalign-0.8.2.post1}/MANIFEST.in +0 -0
  7. {batchalign-0.8.2 → batchalign-0.8.2.post1}/README.md +0 -0
  8. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/__init__.py +0 -0
  9. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/__main__.py +0 -0
  10. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/cli/__init__.py +0 -0
  11. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/cli/bench.py +0 -0
  12. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/cli/cache.py +0 -0
  13. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/cli/cli.py +0 -0
  14. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/cli/dispatch.py +0 -0
  15. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/constants.py +0 -0
  16. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/document.py +0 -0
  17. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/errors.py +0 -0
  18. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/formats/__init__.py +0 -0
  19. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/formats/base.py +0 -0
  20. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/formats/chat/__init__.py +0 -0
  21. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/formats/chat/file.py +0 -0
  22. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/formats/chat/generator.py +0 -0
  23. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/formats/chat/lexer.py +0 -0
  24. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/formats/chat/parser.py +0 -0
  25. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/formats/chat/utils.py +0 -0
  26. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/formats/textgrid/__init__.py +0 -0
  27. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/formats/textgrid/file.py +0 -0
  28. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/formats/textgrid/generator.py +0 -0
  29. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/formats/textgrid/parser.py +0 -0
  30. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/__init__.py +0 -0
  31. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/audio_io.py +0 -0
  32. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/resolve.py +0 -0
  33. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/speaker/__init__.py +0 -0
  34. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/speaker/config.yaml +0 -0
  35. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/speaker/infer.py +0 -0
  36. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/speaker/utils.py +0 -0
  37. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/training/__init__.py +0 -0
  38. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/training/run.py +0 -0
  39. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/training/utils.py +0 -0
  40. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/utils.py +0 -0
  41. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/utterance/__init__.py +0 -0
  42. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/utterance/cantonese_infer.py +0 -0
  43. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/utterance/dataset.py +0 -0
  44. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/utterance/execute.py +0 -0
  45. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/utterance/infer.py +0 -0
  46. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/utterance/prep.py +0 -0
  47. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/utterance/train.py +0 -0
  48. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/wave2vec/__init__.py +0 -0
  49. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/wave2vec/infer_fa.py +0 -0
  50. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/whisper/__init__.py +0 -0
  51. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/whisper/infer_asr.py +0 -0
  52. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/models/whisper/infer_fa.py +0 -0
  53. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/__init__.py +0 -0
  54. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/analysis/__init__.py +0 -0
  55. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/analysis/eval.py +0 -0
  56. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/__init__.py +0 -0
  57. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/num2chinese.py +0 -0
  58. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/num2lang/__init__.py +0 -0
  59. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/num2lang/deu.py +0 -0
  60. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/num2lang/ell.py +0 -0
  61. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/num2lang/eng.py +0 -0
  62. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/num2lang/eus.py +0 -0
  63. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/num2lang/fra.py +0 -0
  64. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/num2lang/hrv.py +0 -0
  65. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/num2lang/ind.py +0 -0
  66. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/num2lang/jpn.py +0 -0
  67. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/num2lang/nld.py +0 -0
  68. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/num2lang/por.py +0 -0
  69. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/num2lang/spa.py +0 -0
  70. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/num2lang/tha.py +0 -0
  71. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/oai_whisper.py +0 -0
  72. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/rev.py +0 -0
  73. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/utils.py +0 -0
  74. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/whisper.py +0 -0
  75. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/asr/whisperx.py +0 -0
  76. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/avqi/__init__.py +0 -0
  77. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/avqi/engine.py +0 -0
  78. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/base.py +0 -0
  79. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/cache.py +0 -0
  80. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/cleanup/__init__.py +0 -0
  81. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/cleanup/cleanup.py +0 -0
  82. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/cleanup/disfluencies.py +0 -0
  83. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/cleanup/parse_support.py +0 -0
  84. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/cleanup/retrace.py +0 -0
  85. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/cleanup/support/filled_pauses.eng +0 -0
  86. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/cleanup/support/replacements.eng +0 -0
  87. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/cleanup/support/test.test +0 -0
  88. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/diarization/__init__.py +0 -0
  89. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/diarization/pyannote.py +0 -0
  90. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/dispatch.py +0 -0
  91. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/fa/__init__.py +0 -0
  92. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/fa/wave2vec_fa.py +0 -0
  93. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/fa/whisper_fa.py +0 -0
  94. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/morphosyntax/__init__.py +0 -0
  95. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/morphosyntax/coref.py +0 -0
  96. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/morphosyntax/en/irr.py +0 -0
  97. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/morphosyntax/fr/apm.py +0 -0
  98. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/morphosyntax/fr/apmn.py +0 -0
  99. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/morphosyntax/fr/case.py +0 -0
  100. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/morphosyntax/ja/verbforms.py +0 -0
  101. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/morphosyntax/ud.py +0 -0
  102. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/opensmile/__init__.py +0 -0
  103. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/opensmile/engine.py +0 -0
  104. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/pipeline.py +0 -0
  105. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/speaker/__init__.py +0 -0
  106. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/speaker/nemo_speaker.py +0 -0
  107. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/translate/__init__.py +0 -0
  108. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/translate/gtrans.py +0 -0
  109. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/translate/seamless.py +0 -0
  110. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/translate/utils.py +0 -0
  111. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/utr/__init__.py +0 -0
  112. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/utr/rev_utr.py +0 -0
  113. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/utr/utils.py +0 -0
  114. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/utr/whisper_utr.py +0 -0
  115. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/utterance/__init__.py +0 -0
  116. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/pipelines/utterance/ud_utterance.py +0 -0
  117. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/__init__.py +0 -0
  118. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/cli/test_dispatch_memory.py +0 -0
  119. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/conftest.py +0 -0
  120. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/formats/chat/test_chat_file.py +0 -0
  121. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/formats/chat/test_chat_generator.py +0 -0
  122. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/formats/chat/test_chat_lexer.py +0 -0
  123. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/formats/chat/test_chat_parser.py +0 -0
  124. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/formats/chat/test_chat_utils.py +0 -0
  125. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/formats/textgrid/test_textgrid.py +0 -0
  126. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/models/test_audio_io.py +0 -0
  127. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/models/test_audio_lazy.py +0 -0
  128. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/pipelines/analysis/test_eval.py +0 -0
  129. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/pipelines/asr/test_asr_pipeline.py +0 -0
  130. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/pipelines/asr/test_asr_utils.py +0 -0
  131. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/pipelines/cache/__init__.py +0 -0
  132. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/pipelines/cache/test_cache.py +0 -0
  133. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/pipelines/cleanup/test_disfluency.py +0 -0
  134. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/pipelines/cleanup/test_parse_support.py +0 -0
  135. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/pipelines/fa/test_fa_pipeline.py +0 -0
  136. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/pipelines/fa/test_fa_short_segments.py +0 -0
  137. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/pipelines/fixures.py +0 -0
  138. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/pipelines/test_pipeline.py +0 -0
  139. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/pipelines/test_pipeline_models.py +0 -0
  140. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/tests/test_document.py +0 -0
  141. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/utils/__init__.py +0 -0
  142. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/utils/abbrev.py +0 -0
  143. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/utils/compounds.py +0 -0
  144. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/utils/config.py +0 -0
  145. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/utils/device.py +0 -0
  146. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/utils/dp.py +0 -0
  147. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/utils/names.py +0 -0
  148. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign/utils/utils.py +0 -0
  149. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign.egg-info/SOURCES.txt +0 -0
  150. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign.egg-info/dependency_links.txt +0 -0
  151. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign.egg-info/entry_points.txt +0 -0
  152. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign.egg-info/requires.txt +0 -0
  153. {batchalign-0.8.2 → batchalign-0.8.2.post1}/batchalign.egg-info/top_level.txt +0 -0
  154. {batchalign-0.8.2 → batchalign-0.8.2.post1}/setup.cfg +0 -0
  155. {batchalign-0.8.2 → batchalign-0.8.2.post1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: batchalign
3
- Version: 0.8.2
3
+ Version: 0.8.2.post1
4
4
  Summary: Python Speech Language Sample Analysis
5
5
  Author: Brian MacWhinney, Houjun Liu
6
6
  Author-email: macw@cmu.edu, houjun@cmu.edu
@@ -317,20 +317,30 @@ class CompareAnalysisEngine(BatchalignEngine):
317
317
  tasks = [Task.COMPARE_ANALYSIS]
318
318
 
319
319
  def analyze(self, doc, **kwargs):
320
+ from collections import defaultdict
321
+
320
322
  matches = 0
321
323
  extra_main = 0
322
324
  extra_gold = 0
323
325
 
326
+ # Per-POS counters: pos -> {matches, insertions, deletions}
327
+ pos_counts = defaultdict(lambda: {"matches": 0, "insertions": 0, "deletions": 0})
328
+
324
329
  for utt in doc.content:
325
330
  if not isinstance(utt, Utterance) or utt.comparison is None:
326
331
  continue
327
332
  for tok in utt.comparison:
333
+ if tok.pos == "PUNCT":
334
+ continue
328
335
  if tok.status == "match":
329
336
  matches += 1
337
+ pos_counts[tok.pos]["matches"] += 1
330
338
  elif tok.status == "extra_main":
331
339
  extra_main += 1
340
+ pos_counts[tok.pos]["insertions"] += 1
332
341
  elif tok.status == "extra_gold":
333
342
  extra_gold += 1
343
+ pos_counts[tok.pos]["deletions"] += 1
334
344
 
335
345
  total_gold = matches + extra_gold
336
346
  total_main = matches + extra_main
@@ -347,6 +357,15 @@ class CompareAnalysisEngine(BatchalignEngine):
347
357
  "total_main_words": total_main,
348
358
  }
349
359
 
360
+ # Add per-POS breakdown
361
+ for pos in sorted(pos_counts.keys()):
362
+ counts = pos_counts[pos]
363
+ total = counts["matches"] + counts["deletions"]
364
+ metrics[f"{pos}:matches"] = counts["matches"]
365
+ metrics[f"{pos}:insertions"] = counts["insertions"]
366
+ metrics[f"{pos}:deletions"] = counts["deletions"]
367
+ metrics[f"{pos}:total"] = total
368
+
350
369
  return {
351
370
  "doc": doc,
352
371
  "metrics": metrics,
@@ -1,3 +1,3 @@
1
- 0.8.2
1
+ 0.8.2-post.1
2
2
  Feb 27th 2026
3
3
  adds new feature regarding compare
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: batchalign
3
- Version: 0.8.2
3
+ Version: 0.8.2.post1
4
4
  Summary: Python Speech Language Sample Analysis
5
5
  Author: Brian MacWhinney, Houjun Liu
6
6
  Author-email: macw@cmu.edu, houjun@cmu.edu
File without changes
File without changes
File without changes
File without changes
File without changes