def run(self): time.sleep(0.1) kwargs = self.kwargs self.results = [] context = kwargs.pop('context') if context == RestrictedContextWidget.canonical_value: cm = CanonicalVariantContext elif context == RestrictedContextWidget.frequent_value: cm = MostFrequentVariantContext corpus = kwargs.pop('corpus') st = kwargs.pop('sequence_type') tt = kwargs.pop('type_token') ft = kwargs.pop('frequency_cutoff') with cm(corpus, st, tt, frequency_threshold=ft) as c: try: for pair in kwargs['segment_pairs']: res = calc_freq_of_alt( c, pair[0], pair[1], kwargs['algorithm'], min_rel=kwargs['min_rel'], max_rel=kwargs['max_rel'], min_pairs_okay=kwargs['include_minimal_pairs'], from_gui=True, phono_align=kwargs['phono_align'], output_filename=kwargs['output_filename'], stop_check=kwargs['stop_check'], call_back=kwargs['call_back']) if self.stopped: break self.results.append(res) except PCTError as e: self.errorEncountered.emit(e) return except Exception as e: e = PCTPythonError(e) self.errorEncountered.emit(e) return if self.stopped: self.finishedCancelling.emit() return self.dataReady.emit(self.results)
def run(self): time.sleep(0.1) kwargs = self.kwargs self.results = [] context = kwargs.pop('context') if context == RestrictedContextWidget.canonical_value: cm = CanonicalVariantContext elif context == RestrictedContextWidget.frequent_value: cm = MostFrequentVariantContext corpus = kwargs.pop('corpus') st = kwargs.pop('sequence_type') tt = kwargs.pop('type_token') ft = kwargs.pop('frequency_cutoff') with cm(corpus, st, tt, frequency_threshold = ft) as c: try: for pair in kwargs['segment_pairs']: res = calc_freq_of_alt(c, pair[0], pair[1], kwargs['algorithm'], min_rel=kwargs['min_rel'], max_rel=kwargs['max_rel'], min_pairs_okay=kwargs['include_minimal_pairs'], from_gui = True, phono_align=kwargs['phono_align'], output_filename=kwargs['output_filename'], stop_check = kwargs['stop_check'], call_back = kwargs['call_back']) if self.stopped: break self.results.append(res) except PCTError as e: self.errorEncountered.emit(e) return except Exception as e: e = PCTPythonError(e) self.errorEncountered.emit(e) return if self.stopped: self.finishedCancelling.emit() return self.dataReady.emit(self.results)
def test_freqalt(specified_test_corpus): with CanonicalVariantContext(specified_test_corpus, 'transcription', 'type') as c: result = calc_freq_of_alt(c,'s','ʃ','khorsi', min_rel = -15, phono_align=True) assert(result==(8,3,0.375)) result = calc_freq_of_alt(c,'s','ʃ','khorsi', min_rel = -6, phono_align=True) assert(result==(8,0,0)) result = calc_freq_of_alt(c,'s','ʃ','khorsi', min_rel = -6, phono_align=False) assert(result==(8,2,0.25)) result = calc_freq_of_alt(c,'s','ʃ','khorsi', min_rel = -15, phono_align=False) assert(result==(8,7,0.875)) result = calc_freq_of_alt(c,'s','ʃ','edit_distance', max_rel = 2, phono_align=True) assert(result==(8,2,0.25)) result = calc_freq_of_alt(c,'s','ʃ','edit_distance', max_rel = 2, phono_align=False) assert(result==(8,2,0.25)) result = calc_freq_of_alt(c,'s','ʃ','phono_edit_distance', max_rel = 6, phono_align=True) assert(result==(8,2,0.25)) result = calc_freq_of_alt(c,'s','ʃ','phono_edit_distance', max_rel = 6, phono_align=False) assert(result==(8,2,0.25)) with CanonicalVariantContext(specified_test_corpus, 'transcription', 'token') as c: result = calc_freq_of_alt(c,'s','ʃ','khorsi', min_rel = -15, phono_align=True) assert(result==(8,3,0.375)) result = calc_freq_of_alt(c,'s','ʃ','khorsi', min_rel = -6, phono_align=True) assert(result==(8,2,0.25)) result = calc_freq_of_alt(c,'s','ʃ','khorsi', min_rel = -15, phono_align=False) assert(result==(8,7,0.875)) result = calc_freq_of_alt(c,'s','ʃ','khorsi', min_rel = -6, phono_align=False) assert(result==(8,3,0.375)) result = calc_freq_of_alt(c,'s','ʃ','edit_distance', max_rel = 4, phono_align=True) assert(result==(8,3,0.375)) result = calc_freq_of_alt(c,'s','ʃ','edit_distance', max_rel = 4, phono_align=False) assert(result==(8,6,0.75)) result = calc_freq_of_alt(c,'s','ʃ','phono_edit_distance', max_rel = 20, phono_align=True) assert(result==(8,3,0.375)) result = calc_freq_of_alt(c,'s','ʃ','phono_edit_distance', max_rel = 20, phono_align=False) assert(result==(8,6,0.75))