Пример #1
0
 def print_pairings(self):
     """
     Print out the pairings for first date, along with the combined scores.
     """
     random.seed(0)
     everyone = Match(Profiles(100))
     pairs_list = everyone.pairs()
     for index, (male, female, score) in enumerate(pairs_list):
         print("{:2}: {:2} vs {:2} with the score {:.3f}".format(
             index + 1, male + 1, female + 1, score))
Пример #2
0
    def __init__(self, ui_template):
        super(MatchViewGroup, self).__init__()
        """
        Import settings
        """
        self.ui_template = ui_template
        self.settings = import_settings()

        self.current_match = Match()

        self.setTitle('Match View')
        """
        Layout
        """
        self.grid_layout = QGridLayout()
        self.setLayout(self.grid_layout)
        self.grid_layout.setColumnStretch(1, 1)
        self.grid_layout.setColumnStretch(2, 1)
        self.grid_layout.setColumnStretch(3, 1)
        self.grid_layout.setRowStretch(1, 1)
        """
        Rounds list
        """
        self.rounds_list = QListView()
        self.rounds_list_model = QStandardItemModel()
        self.rounds_list.setModel(self.rounds_list_model)
        self.rounds_list.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.grid_layout.addWidget(self.rounds_list, 0, 0, 2, 1)
        """
        End game state info
        """
        self.end_game_state_info_group = QGroupBox()
        self.end_game_state_info_layout = QVBoxLayout()
        self.end_game_state_info_group.setLayout(
            self.end_game_state_info_layout)
        self.end_game_state_info_group.setTitle('Results')
        self.grid_layout.addWidget(self.end_game_state_info_group, 2, 0, 2, 1)
        # Results
        self.match_seed_label = QLabel()
        self.end_game_state_info_layout.addWidget(self.match_seed_label)
        self.match_winner_label = QLabel()
        self.end_game_state_info_layout.addWidget(self.match_winner_label)
        self.player_A_results_label = QLabel()
        self.end_game_state_info_layout.addWidget(self.player_A_results_label)
        self.player_B_results_label = QLabel()
        self.end_game_state_info_layout.addWidget(self.player_B_results_label)
        self.referee_messages_label = QLabel()
        self.referee_messages_label.setText('Referee Messages')
        self.end_game_state_info_layout.addWidget(self.referee_messages_label)
        self.referee_messages_text = QTextBrowser()
        self.end_game_state_info_layout.addWidget(self.referee_messages_text)

        # Map view
        self.map_view = QGraphicsView()
        self.map_scene = QGraphicsScene()
        self.map_view.setScene(self.map_scene)
        self.grid_layout.addWidget(self.map_view, 1, 1, 2, 2)

        # Add groups and field labels to the match view
        self.groups = {}
        self.populate_fields(self.ui_template, self.grid_layout)
Пример #3
0
 def load_match(self, directory):
     self.current_match = Match(directory)
     self.list_rounds()
     self.update_end_game_state()
     self.rounds_list.setCurrentIndex(self.rounds_list_model.index(0, 0))
Пример #4
0
corpus = []
with open('data/sentences.txt', 'r', encoding='utf-8') as f:
    for line in f:
        corpus.append(line.strip())

find_words_obj = FindWords(corpus=corpus,
                           top_k=500,
                           chunk_size=10000,
                           min_n=3,
                           max_n=5,
                           min_freq=10)
find_words_obj.find_new_words()
find_words_obj.to_file(my_list=find_words_obj.new_words,
                       file_path='data/new_words.txt')

match_obj = Match(build_words_path='data/new_words.txt',
                  input_words_path='data/new_words.txt')
print(match_obj.match_all())
# [('婚贝请柬', '婚贝请间'), ('黑马矿友', '黑码矿友'), ('填锐绿盾', '天锐绿盾'), ... ]

# 开放拼音相似,懒得再生成,直接在new_words.txt中写入'杜拉拉'、'非马宽友'测试
new_word_out = open('data/new_words.txt', 'a+', encoding='utf-8')
new_word_out.write('杜拉拉' + '\n')
new_word_out.write('非马宽友')
new_word_out.close()
match_obj = Match(build_words_path='data/new_words.txt',
                  input_words_path='data/new_words.txt',
                  level=PinyinLevel.CONFUSED)
print(match_obj.match('黑马矿友'))
print(match_obj.match_all())
# [('土拉拉', '杜拉拉'), ('黑马矿友', '非马宽友'), ('填锐绿盾', '天锐绿盾'), ... ]
Пример #5
0
"""
Unit tests for match module.
"""
import random
import unittest
from data.profiles import Profiles
from match.match import Match

random.seed(0)
INITIAL_ATTENDANTS = list(Profiles(100))
# Result after matching, RESULTS should be a list of tuples (male_index,female_index, score)
RESULTS = Match(INITIAL_ATTENDANTS)
PAIRS = RESULTS.pairs()


class TestMatch(unittest.TestCase):
    """
    Tests for match. Try to cover as many scenarios as possible, grouping them into different
    methods as appropriate.
    """
    def test_male_female(self):
        """
            Test if pairing is between males and females only
        """
        for couple in PAIRS:
            self.assertNotEqual(INITIAL_ATTENDANTS[couple[0]]["gender"],
                                INITIAL_ATTENDANTS[couple[1]]["gender"])

    def test_50_pairs(self):
        """
            Test if there are exactly 50 pairs
Пример #6
0
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Jeffrey Gao
# Time: 2020/5/11 22:09
# Description: 发现混淆词主文件

from match.match import Match
from find_words.find_words import FindWords

corpus = []
with open('data/sentences.txt', 'r', encoding='utf-8') as f:
    for line in f:
        corpus.append(line.strip())

find_words_obj = FindWords(corpus=corpus,
                           top_k=500,
                           chunk_size=10000,
                           min_n=3,
                           max_n=5,
                           min_freq=10)
find_words_obj.find_new_words()
find_words_obj.to_file(my_list=find_words_obj.new_words,
                       file_path='data/new_words.txt')

match_obj = Match(build_words_path='data/new_words.txt',
                  input_words_path='data/new_words.txt')
print(match_obj.match_all())
# [('婚贝请柬', '婚贝请间'), ('黑马矿友', '黑码矿友'), ('填锐绿盾', '天锐绿盾'), ... ]