have separate list for possible answers, possible inputs, clean up code, add verb modifiers to allowed types list
This commit is contained in:
@@ -9,11 +9,11 @@ class WordListItem:
|
||||
|
||||
self.word = word[1] if word[1].isalpha() else word[3]
|
||||
self.pos = word[2]
|
||||
self.frequency = int(word[4])
|
||||
self.freq = int(word[4])
|
||||
|
||||
|
||||
def __repr__(self):
|
||||
return f"<WordListItem {self.word=} {self.pos=} {self.frequency=}>"
|
||||
return f"<WordListItem {self.word=} {self.pos=} {self.freq=}>"
|
||||
|
||||
|
||||
def get_args():
|
||||
@@ -23,7 +23,8 @@ def get_args():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('wordlist')
|
||||
parser.add_argument('word_length', type=int)
|
||||
parser.add_argument('frequency_min', type=int)
|
||||
parser.add_argument('valid_answer_freq_min', type=int)
|
||||
parser.add_argument('valid_input_freq_min', type=int)
|
||||
parser.add_argument('allowedtypelist')
|
||||
return parser.parse_args()
|
||||
|
||||
@@ -36,22 +37,24 @@ def main(args):
|
||||
|
||||
types = set()
|
||||
with open(args.wordlist) as fp:
|
||||
words = [ WordListItem(line) for line in fp.read().strip().lower().split('\n') ]
|
||||
src_words = [ WordListItem(line) for line in fp.read().strip().lower().split('\n') ]
|
||||
|
||||
[ types.add(word.pos) for word in words ]
|
||||
src_words = [ word for word in src_words if word.word.isalpha() ]
|
||||
src_words = [ word for word in src_words if len(word.word) == args.word_length ]
|
||||
src_words = [ word for word in src_words if word.pos in allowed_types ]
|
||||
|
||||
words = [ word.word for word in words if word.frequency >= args.frequency_min and word.word.isalpha() and len(word.word) == args.word_length and word.pos in allowed_types ]
|
||||
[ types.add(word.pos) for word in src_words ]
|
||||
|
||||
words = {}
|
||||
words['valid_answers'] = [ w.word for w in src_words if w.freq >= args.valid_answer_freq_min ]
|
||||
words['valid_inputs'] = [ w.word for w in src_words if w.freq >= args.valid_input_freq_min ]
|
||||
|
||||
words.sort()
|
||||
# remove duplicates
|
||||
words = list(set(words))
|
||||
print(f"wordlist = {json.dumps(words)}")
|
||||
print(f"{args=}", file=sys.stderr)
|
||||
print(f"{len(words)=}", file=sys.stderr)
|
||||
print(f"{len(words['valid_answers'])=}", file=sys.stderr)
|
||||
print(f"{len(words['valid_inputs'])=}", file=sys.stderr)
|
||||
print(f"{types=}", file=sys.stderr)
|
||||
print(f"{'cares' in words=}", file=sys.stderr)
|
||||
print(f"{'ideas' in words=}", file=sys.stderr)
|
||||
print(f"{'prose' in words=}", file=sys.stderr)
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user