문제

전반적인 계획

내 클래스 정보를 자동으로 최적화하고 선택 uni 정

전반적인 알고리즘

  1. 로그를 사용하는 웹사이트의 기업인 엔진 로그인
  2. 을 찾아 내 현재 학기 및 그 관련 과목(사전 설정)
  3. 탐색 오른쪽 페이지 데이터에서 각각의 관련 피사체(강의 및 실용적인 워크숍 시간)
  4. 스트립의 데이터를 쓸모없 정보
  5. 순위 클래스에있는 가까이 를 각각 다른,더 높은 사람에 임의의 일 낮
  6. 를 해결하는 가장 좋은 시간이블 솔루션
  7. 출력 나의 상세 목록 최고의 케이스 정보
  8. 출력 나의 상세 목록 가능한 클래스 정보(부 전체 수 있습니다 예를 들어)
  9. 프로그램을 얻을 선택하려면 제일 자동으로 클래스
  10. 지 확인하는 경우리 을 달성 7.

에서 6 세부 사항 모든 클래스를 사용하여 강의로서 초점이 될 것이 가장 높은 순위(당 하나만 주제),그리고를 준비하려고 클래스 주니다.

질문

할 수 있는 누군가 공급하는 링크가 있을 수 있는 이와 유사한 희망을 기록에서 파이썬?에 관해서 6.:데이터 구조는 것이 좋습니다 이 정보를 저장?연결 목록을 각 객관없이,시네란지아?기록해야 하는 모든 정보를 텍스트 파일입니까?

나는 생각하고관없이,시네란지아하는 것 같은 설정이 다음 속성:

  • 주제
  • 순위
  • 시간
  • 유형
  • 교사

나는 거에 경험이 될 것이라고 생각 좋은 학습 프로젝트도 수행할 수 있습니다.감사에 대한 어떤 도움을 제공된 링크를 얻을 수 있도록 저를 시작, 열을 편집하는 태그를 적절하게 또는 무엇이 필요한 (확실하지 않은 무엇이 폭포에서 다른 프로그래밍 파이썬?)

편집:할 수 없을 얻을 적절한 서식이 내가 원하는을 위한 이 게시물><

도움이 되었습니까?

해결책

얼마나 멀리에 따라 당신은 계획에 복#6,그리고 어떻게 큰 데이터 집합이,그것 아닌 사소한;그것은 확실히 난다 NP-하드이 글로벌 최적화하여 내게...

여전히,당신은 이야기에 대해 수만(오히려 수백 가지 이상)노드의,상당히 벙어 알고리즘을 제공해야 충분히 좋은 성과입니다.

그래서,당신은 두 가지 제약 사항이 있습니다.

  1. 총 주문에 클래스에 의해 점수이것은 유연합니다.
  2. 클래스의 충돌;이것은 유연합니다.

내가 무엇을 의미한 유연한은 당신 가 더 이격 클래스(더 낮은 점수),하지만 당신 할 수 없 야에서 두 개의 클래스에서는 한 번입니다.흥미롭게도,가 될 가능성이 긍정적인 사이의 상관 관계 점수와의 충돌;더 높은 점수 클래스가 더 가능성이 충돌.

내 처음에는 알고리즘:

selected_classes = []
classes = sorted(classes, key=lambda c: c.score)
for clas in classes:
    if not clas.clashes_with(selected_classes):
        selected_classes.append(clas)

작업의 충돌이 될 수도 어색한 경우 수업은 고르지 못한 길이 시작에서 이상 시간 및니다.매핑을 시작과 종료 시간으로 단순화된 표현한"블록"시간(매 15 분마다 30 분나 당신이 필요로하는 무엇이든)에 더 쉽게 찾을 위한 중복 사이의 시작과 끝을 다른 클래스입니다.

다른 팁

BeautifulSoup 여기서 몇 번 언급되었습니다 Get-list-of-xml-intribute-values-in-python.

아름다운 수프는 화면 스크래핑과 같은 빠른 처리 프로젝트를 위해 설계된 파이썬 HTML/XML 파서입니다. 세 가지 기능은 강력합니다.

  1. 당신이 나쁜 마크 업을 주면 아름다운 수프가 질식하지 않습니다. 그것은 원본 문서만큼이나 의미가있는 구문 분석 트리를 생성합니다. 이것은 일반적으로 필요한 데이터를 수집하고 도망 갈 수있을 정도로 좋습니다.
  2. Beautiful Soup은 구문 분석 트리를 탐색, 검색 및 수정하기위한 몇 가지 간단한 방법과 Pythonic 관용구를 제공합니다. 문서를 해부하고 필요한 것을 추출하기위한 툴킷입니다. 각 애플리케이션에 대해 사용자 정의 파서를 만들 필요가 없습니다.
  3. 아름다운 수프는 들어오는 문서를 자동으로 유니 코드로 변환하고 발신 문서를 UTF-8로 전환합니다. 문서가 인코딩을 지정하지 않고 아름다운 수프가 자동으로 변환 할 수 없다면 인코딩에 대해 생각할 필요가 없습니다. 그런 다음 원래 인코딩을 지정하면됩니다.

아름다운 수프는 당신이주는 모든 것을 구문 분석하고 당신을 위해 나무를 가로 질러 일합니다. "모든 링크 찾기"또는 "클래스 externAllink의 모든 링크 찾기"또는 "URL이"foo.com "과 일치하는 모든 링크를 찾거나"대담한 텍스트가있는 테이블 제목 찾기를 찾은 다음 제공 할 수 있습니다. 나에게 그 텍스트. "

잘못 디자인되지 않은 웹 사이트에서 한 번 잠긴 귀중한 데이터가 이제 귀하의 도달 범위 내에 있습니다. 몇 시간이 걸렸던 프로젝트는 아름다운 수프로 몇 분이 걸립니다.

여기에는 너무 많은 질문이 있습니다.

이것을 주제 영역으로 나누고 각 주제에 대한 구체적인 질문을하십시오. 구체적인 질문이있는이 중 하나에 집중하십시오. 용어를 정의하십시오. "최고"는 특정 측정을 최적화 할 수있는 것을 의미하지 않습니다.

다음은 귀하의 주제 목록에서 내가 생각하는 것입니다.

  1. 스크래핑 HTML

    1 엔진 로그인에서 엔터프라이즈 부호를 사용하여 웹 사이트에 로그온

    2 현재 학기와 관련 주제를 찾으십시오 (사전 설정)

    3 오른쪽 페이지로 이동하여 각 관련 주제 (강의, 실용 및 워크숍 시간)에서 데이터를 가져옵니다.

    4 쓸모없는 정보의 데이터를 제거하십시오

  2. "가장 가까운 시간"을 찾는 "서로 더 가까이"를 기반으로 "순위"에 대한 일부 알고리즘. 이 용어는 정의되지 않았으므로 이에 대한 도움을 제공하는 것은 거의 불가능합니다.

    5 클래스는 서로 더 가까워지고 임의의 날은 더 낮습니다.

    6 최고의 시간 테이블 솔루션을 해결하십시오

  3. 무언가를 출력하십시오.

    7 출력 최고의 사례 정보의 자세한 목록

    8 가능한 클래스 정보의 자세한 목록을 출력합니다 (일부는 가득 찰 수 있음)

  4. "최고"를 찾고 무언가를 최적화하십시오. 정의 할 수없는 또 다른 용어.

    9 최고의 클래스를 자동으로 선택하려면 프로그램을 받으십시오.

    10 우리가 달성 할 수 있는지 확인하십시오.

BTW, 파이썬은 "기울기". 그들이"링크 된 "여부에 관계없이 실제로 들어가지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top