예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
0
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))