Skip to content

Commit

Permalink
adding 'Transcription tier' column in PS result window
Browse files Browse the repository at this point in the history
  • Loading branch information
stannam committed Dec 14, 2021
1 parent 5671ea6 commit c44b231
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 10 deletions.
14 changes: 8 additions & 6 deletions corpustools/gui/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -569,36 +569,38 @@ def _summarize(self):
for line in self.allData:
segs = line['userinput_target']
envs = line['userinput_env']
tier = line['Transcription tier']
res_type = line['Result type']
wf = line['Min Word Freq'], line['Max Word Freq'] # word freq filter min/max
pc = line['Min Phoneme Number'], line['Max Phoneme Number'] # phoneme count min/max
sc = line['Min Syllable Number'], line['Max Syllable Number'] # syllable count min/max
filters = wf, pc, sc
for i,seg in enumerate(segs):
segenvfilters = seg, envs[i], filters, res_type # segs + envs + (freq and phoneme/syllable count filters) + result_type
if line['Result type'] == 'positive': # if positive search
segenvfilters = seg, envs[i], filters, tier, res_type # segs + envs + (freq and phoneme/syllable count filters) + result_type
if res_type == 'positive': # if positive search
if line['raw_env'][i] is not None: # then check if the word is in results for satisfying env[i]
typefreq[segenvfilters] += 1 # if so, +1 in the type freq
tokenfreq[segenvfilters] += line['Word'].frequency # and add token freq accordingly
else:
typefreq[segenvfilters] += 0
tokenfreq[segenvfilters] += 0
elif line['Result type'] == 'negative': # if negative search
elif res_type == 'negative': # if negative search
typefreq[segenvfilters] += 1 # the word is in the result for NOT satisfying the env[i] so +1
tokenfreq[segenvfilters] += line['Word'].frequency # and add token freq accordingly

self.rows = list()
for k,v in sorted(typefreq.items()):
for k, v in sorted(typefreq.items()):
corpus_name = self.allData[0]['Corpus']
PCT_version = self.allData[0]['PCT ver.']
segment = k[0]
environment = k[1]
filter_word_freq = k[2][0]
filter_phon_count = k[2][1]
filter_syll_count = k[2][2]
pos_neg = k[3]
tier = k[3]
pos_neg = k[4]

self.rows.append([corpus_name, PCT_version, segment, environment, v, tokenfreq[k], pos_neg,
self.rows.append([corpus_name, PCT_version, segment, environment, v, tokenfreq[k], tier, pos_neg,
filter_word_freq[0], filter_word_freq[1],
filter_phon_count[0], filter_phon_count[1],
filter_syll_count[0], filter_syll_count[1]])
Expand Down
9 changes: 5 additions & 4 deletions corpustools/gui/psgui.py
Original file line number Diff line number Diff line change
Expand Up @@ -540,11 +540,11 @@ def deleteEnvironment(self):

class PhonoSearchDialog(FunctionDialog):
header = ['Corpus', 'PCT ver.', 'Word', 'Transcription', 'Token frequency', 'Target', 'Environment',
'Result type', 'Min Word Freq', 'Max Word Freq', 'Min Phoneme Number', 'Max Phoneme Number',
'Min Syllable Number', 'Max Syllable Number']
'Transcription tier', 'Result type', 'Min Word Freq', 'Max Word Freq', 'Min Phoneme Number',
'Max Phoneme Number', 'Min Syllable Number', 'Max Syllable Number']
summary_header = ['Corpus', 'PCT ver.', 'Target', 'Environment', 'Type frequency', 'Token frequency',
'Result type', 'Min Word Freq', 'Max Word Freq', 'Min Phoneme Number', 'Max Phoneme Number',
'Min Syllable Number', 'Max Syllable Number']
'Transcription tier', 'Result type', 'Min Word Freq', 'Max Word Freq', 'Min Phoneme Number',
'Max Phoneme Number', 'Min Syllable Number', 'Max Syllable Number']
_about = ['']
name = 'phonological search'

Expand Down Expand Up @@ -916,6 +916,7 @@ def setResults(self, results):
'Transcription': res_transcription,
'Target': target,
'Environment': envs,
'Transcription tier': self.tierWidget.displayValue(),
'Result type': self.resultType,
'Token frequency': word.frequency,
'Min Word Freq': freq_filters['min_word'],
Expand Down
2 changes: 2 additions & 0 deletions corpustools/gui/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -876,11 +876,13 @@ def summaryDetail(self):
# but due to MacOS-dependent issue, QPushButton.setText() doesn't update. Instead two buttons with the identical
# label switch.
if self.summarized:
# summarized result -> total result
self.table.model().setSummarized(False) # update table contents
self.individualButton.hide()
self.aclayout.insertWidget(0, self.summaryButton)
self.summaryButton.show()
else:
# total result -> summarized result
self.table.model().setSummarized(True) # update table contents
self.summaryButton.hide()
self.aclayout.insertWidget(0, self.individualButton)
Expand Down

0 comments on commit c44b231

Please sign in to comment.